c c 高質量程式設計(林銳)讀書筆記二

2021-06-04 22:37:18 字數 1893 閱讀 4481

標頭檔案由三部分內容組成:

(1)標頭檔案開頭處的版權和版本宣告(參見示例1-1)。

(2)預處理塊。

(3)函式和類結構宣告等。

假設頭檔名稱為graphics.h,標頭檔案的結構參見示例1-2。 

【規則1-2-1】為了防止標頭檔案被重複引用,應當用ifndef/define/endif結構產生預處理塊。

【規則1-2-2】用 #include 格式來引用標準庫的標頭檔案(編譯器將從標準庫目錄開始搜尋)。

【規則1-2-3】用 #include 「filename.h」格式來引用非標準庫的標頭檔案(編譯器將從使用者的工作目錄開始搜尋)。

【建議1-2-1】標頭檔案中只存放「宣告」而不存放「定義」

在c++ 語法中,類的成員函式可以在宣告的同時被定義,並且自動成為內聯函式。這雖然會帶來書寫上的方便,但卻造成了風格不一致,弊大於利。建議將成員函式的定義與宣告分開,不論該函式體有多麼小。

【建議1-2-2】不提倡使用全域性變數,盡量不要在標頭檔案中出現象extern int value 這類宣告。

【規則3-2-1】類名和函式名用大寫字母開頭的單詞組合而成。

【規則3-2-3】常量全用大寫的字母,用下劃線分割單詞。

【規則3-2-5】如果不得已需要全域性變數,則使全域性變數加字首g_(表示global)。

【規則3-2-6】類的資料成員加字首m_(表示member),這樣可以避免資料成員與成員函式的引數同名。

【建議4-5-1】建議for語句的迴圈控制變數的取值採用「半開半閉區間」寫法。

有了if語句為什麼還要switch語句?

switch是多分支選擇語句,而if語句只有兩個分支可供選擇。雖然可以用巢狀的if語句來實現多分支選擇,但那樣的程式冗長難讀。這是switch語句存在的理由。

switch語句的基本格式是:

switch (variable)

case value1 :    …

break;

case value2 :    …

break;

default :   …

break;

【規則4-6-1】每個case語句的結尾不要忘了加break,否則將導致多個分支重疊(除非有意使多個分支重疊)。

【規則4-6-2】不要忘記最後那個default分支。即使程式真的不需要default處理,也應該保留語句   default : break; 這樣做並非多此一舉,而是為了防止別人誤以為你忘了default處理。

如果不使用常量,直接在程式中填寫數字或字串,將會有什麼麻煩?

(1)   程式的可讀性(可理解性)變差。程式設計師自己會忘記那些數字或字串是什麼意思,使用者則更加不知它們從何處來、表示什麼。

(2)   在程式的很多地方輸入同樣的數字或字串,難保不發生書寫錯誤。

(3)   如果要修改數字或字串,則會在很多地方改動,既麻煩又容易出錯。

(1)   const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查。而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換可能會產生意料不到的錯誤(邊際效應)。

(2)   有些整合化的除錯工具可以對const常量進行除錯,但是不能對巨集常量進行除錯。

【規則6-3-2】在函式體的「出口處」,對return語句的正確性和效率進行檢查。

return語句不可返回指向「棧記憶體」的「指標」或者「引用」,因為該內存在函式體結束時被自動銷毀。

林銳C C 高質量程式設計指南之二

只是記了一部分我認為比較難理解的,或常用的,部分掌握的就沒有寫。規則 7 2 1 用 malloc 或 new 申請記憶體之後,應該立即檢查指標值是否為 null。防止使用指標值為 null 的記憶體。規則 7 2 2 不要忘記為陣列和動態記憶體賦初值。防止將未被初始化的記憶體作為右 值使用。規則 ...

《高質量程式設計指南 C C語言》 林銳

一 c 檔案結構 c c 程式的標頭檔案以 h 為字尾,c 程式的定義檔案以 c 為字尾,c 程式 的定義檔案通常以 cpp 為字尾 1 標頭檔案結構 h 標頭檔案由三部分內容組成 1 標頭檔案開頭處的版權和版本宣告。2 預處理塊。3 函式和類結構宣告等。為了防止標頭檔案被重複引用,應當用ifnde...

高質量c c 讀書筆記

知錯就改 溫故知新 工作不忘學習 bool flag與 零值 的比較 if flag if flag int 型變數n與 零值 比較 if n 0 if n1 0 float 型變數x與 零值 比較 const float epsinon 0.000001 if x epsinon x epsino...