高質量C C 程式設計指南 讀書筆記三 3 4章

2022-08-04 09:30:11 字數 1372 閱讀 8973

第三章  命名規則

一、知識點

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 ...