C 《C和指標》第8章讀書筆記之效率問題

2021-08-20 13:17:03 字數 938 閱讀 8984

作者在第8章有幾個小例子來測試指標的效率問題。他當年用的處理器是摩托羅拉的m6800,編譯器不清楚。下面是他的例子。原諒我的電子版的太花了。。

上面這個例子的反彙編行數比較多。

運用了指標及一些技巧後,反彙編**迅速降低,執行效率看起來變高了。

但是,同樣的**我在vs2010上面試了下。上面第乙個例子對應的**如下:

上面第2個例子對應的反彙編**如下:

我們看到,第二個運用指標的例子,在vs2010上面,反彙編的**反而更多了。

這說明不同的cpu和編譯器,產生的彙編是不一樣的。另外現在編譯器技術非常先進,有時能把你寫的很爛的**,優化後和寫的好的**在彙編上看不出什麼差距。

在這一部分的結尾處,作者寫了個提示,提出了這個問題,即效率和可維護性的取捨;在我看來,除非是某些場合確實追求峰值效率,必須對即時發生的事件做出實時響應,可以運用一些技巧或直接用彙編。但是在大部分場合,還是應該以可維護性和可讀性為主。

有時為了追求一點點執行時的效率,所付出的代價是:程式難寫在前,難於維護在後。如果程式無法執行或無法維護,那它的執行速度再快也無濟於事。另外從本質上說,複雜的用法比簡單的用法所涉及的風險要大得多,維護**的程式設計師可能並不如你經驗豐富,程式維護是軟體產品的主要成本所在,所以那些使程式維護工作更為困難的程式設計技巧應慎重使用。

C和指標讀書筆記 第8章(陣列)

1.陣列名的值是乙個指標常量,也就是陣列第1個元素的位址,它的型別取決於陣列元素的型別。記住是指標常量。2陣列具有確定數量的元素,指標只是乙個標量值。只有當陣列名在表示式中使用時,編譯器才為它產生乙個指標常量。在程式完成鏈結之後,記憶體中陣列的位置是固定的。3.你不能使用賦值符把乙個陣列的所有元素複...

《浪潮之巔》讀書筆記 第8章 思科

第8章 思科 公司1984 納多。波薩卡 桑迪。勒納創辦 起家於路由器,正值網際網路興起 1986 第一款產品 特殊文化 鼓勵員工自己創業,在內部創業,並會給予投資,成功則擁有優先收購權 這昂就可以通過技術間接的壟斷了網際網路裝置的市場 競爭者juniper 定位為高階市場,競爭不大,且反壟斷法不允...

《C和指標》讀書筆記 8

宣告 該讀書筆記摘抄自 c和指標 kenneth a.reek 著 徐波 譯 為了克服自己走馬觀花,提高閱讀和學習效率,決定將自己在讀書過程中遇到的一些知識點加以摘抄和總結備忘,在此感謝原書作者和翻譯。一 字串長度 1 標準庫函式 size t strlen char const string 標頭...