第三章 命名規則
一、知識點
1、命名規則:(p23)
(1)、在windows中應用程式的識別符號通常採用「大小寫」混排的方式,如addchild。而unix應用程式的識別符號通常採用「小寫加下劃線」的方式,如add_child。
(2)、全域性函式的名字應當使用「動詞」 或者「 動詞+ 名詞」。類的成員函式應當只用「動詞」,被省略掉的名詞就是物件本身。
2、簡單的windows 應用程式命名規則:(p23)
(1)、類名和函式名用大寫字母開頭的單詞組合而成。
(2)、變數和引數用小寫字母開頭的單詞組合而成。
(3)、常量全用大寫的字母,用下劃線分割單詞。
(4)、靜態變數加字首s_(表示static)。
(5)、如果不得已需要全域性變數,則使全域性變數加字首g_ (表示global)。
(6)、類的資料成員加字首m_(表示member),這樣可以避免資料成員與成員函式的引數同名。
第四章 表示式和基本語句
一、知識點
1、if 語句:(p27)
(1)、不可以將布林變數直接與true、false或者1、0 進行比較,正確方式如下:
if(flag) // 表示flag為真
if(!flag) // 表示flag為假
(2)、應當將整型變數用「==」 或 「!=」 直接與 0 比較。
if(value == 0)
不可模仿布林變數的風格而寫成
if(value) // 會讓人誤解value 是布林變數
(3)、不可將浮點變數用「==」 或 「!=」 與任何數字比較。因為float 與 double 型別的變數都是有精度限制的。應該設法轉換成「>=」 或 「<=」 形式。
if((x >= -epsinon) && (x <= epsinon))
其中epsinon 是允許的誤差(即精度)。
(4)、應當將指標變數用「==」 或「!=」 與null比較。儘管null的值與0相同,但是兩者意義不同。
2、迴圈體的效率:(p29)
(1)、在多重迴圈中,如果有可能,應該將最長的迴圈放在最內層,最短的迴圈放在最外層,以減少cpu 跨切迴圈層的次數。
3、如果迴圈體內存在邏輯判斷,並且迴圈次數很大,宜將邏輯判斷移到迴圈體的外面。下面的例子4-4(c) 的程式比示例 4-4(d) 多執行了 n-1 次邏輯判斷。並且由於前者經常要進行邏輯判斷,打斷了迴圈「流水線」 作業使得編譯器不能對迴圈進行優化處理,降低了效率。(p30)
《高質量C C程式設計指南》讀書筆記三
每個類只有乙個析構函式和乙個賦值函式。可有多個建構函式。把物件的初始化放在建構函式中,把清除工作放在析構函式中。然後編譯器會自動進行初始化和清除工作。建構函式和析構函式沒有返回值型別。9.2建構函式的初始化列表 位於函式引數表之後,之前,類的const常量只能在初始化列表中初始化,9.3建構函式的次...
讀書筆記 高質量C C程式設計指南 目錄
序 最近痛下決心要好好學習下c和c 以為即將來臨的求職做點準備,在網上搜野指標的問題時看到了 高質量c c程式設計指南 對於我這種想從事嵌入式開發的人來說,猶如收穫到一本程式設計的bible似的。此文對c和c 程式設計的風格及注意事項進行了精妙的分析,集合了thinking in c effecti...
高質量C C 程式設計指南讀書筆記(2)
7.2.1用malloc或者new申請記憶體之後,應該立即檢查指標值是否為 null。防止使用指標值為null的記憶體。7.2.3動態記憶體的申請與釋放必須配對,防止記憶體洩漏。7.2.4用free或delete釋放了記憶體之後,立即將指標設定為null,防止 產生 野指標 7.7野指標的成因 1 ...