本文是自己讀書的時候一些關於該書的重點及感悟
目錄
1、函式的好處
2、編碼風格
3、函式設計的一般原則和技巧
4、遞迴
(1)降低複雜性
(2)避免**重複
(3)限制改動帶來的影響
(4)隱含順序
(5)改進效能
(6)進行集中控制
(7)隱含資料結構
(8)隱含指標操作
(9)隱藏全域性變數
(1)每乙個函式都必須有注釋,即使函式短到可能只有幾行。
(2)每個函式定義結束之後以及每個檔案結束之後都要加乙個或若干個空行。
(3)在乙個函式體內,變數定義與函式語句之間要加空行。
(4)邏揖上密切相關的語句之間不加空行,其它地方應加空行分隔。
(5)複雜的函式中,在分支語句,迴圈語句結束之後需要適當的注釋,方便區分各分支或迴圈體
(6)修改別人**的時候不要輕易刪除別人的**,應該用適當的注釋方式,
(7)用縮行顯示程式結構,使排版整齊,縮排量統一使用4個字元(不使用tab縮排)。
(8)在函式體的開始、結構/聯合的定義、列舉的定義以及迴圈、判斷等語句中
的**都要採用縮行。
(9)同層次的**在同層次的縮排層上。
(10)**行最大長度宜控制在80 個字元以內,較長的語句、表示式等要分成多行書寫。
(11)長表示式要在低優先順序操作符處劃分新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要進行適當的縮排,使排版整齊,語句可讀。
(12)如果函式中的引數較長,則要進行適當的劃分。
(13)用正確的反義詞組命名具有互斥意義的變數或相反動作的函式等。
(14)如果**行中的運算子比較多,用括號確定表示式的操作順序,避免使用預設的優先順序。
(15)不要編寫太複雜的復合表示式。
(16)不要有多用途的復合表示式。
(17)盡量避免含有否定運算的條件表示式。
(18)引數的書寫要完整,不要貪圖省事只寫引數的型別而省略引數名字。如果函式沒有引數,則用void 填充。
(1)原則上盡量少使用全域性變數
(2)引數命名要恰當,順序要合理。
(3)如果引數是指標,且僅作輸入引數用,則應在型別前加const,以防止該指標在函式體內被意外修改。
(4)不要省略返回值的型別
(5)在函式體的「入口處」,對引數的有效性進行檢查。
(6)return 語句不可返回指向「棧記憶體」的「指標」
(7)函式的功能要單一,不要設計多用途的函式。
(8)函式體的規模要小,盡量控制在80 行**之內。
(9)相同的輸入應當產生相同的輸出。
(10)避免函式有太多的引數,引數個數盡量控制在4個或4個以內。
(11)盡量不要使用型別和數目不確定的引數。
(12)有時候函式不需要返回值,但為了增加靈活性如支援鏈式表達,可以附加返回值。
(13)不僅要檢查輸入引數的有效性,還要檢查通過其它途徑進入函式體內的變數的有效性,例如全域性變數、檔案控制代碼等。
(14)函式名與返回值型別在語義上不可衝突。
(1)平時寫**,不到萬不得已,盡量不要用遞迴。
《c語言深度剖析》讀書筆記(二)符號
本文是自己讀書的時候一些關於該書的重點及感悟 目錄 1 注釋符號 2 接續符和轉義符 3 單引號和雙引號 4 邏輯運算子 5 位運算子 6 花括號 7 操作符 8 c語言除法 9 符號優先順序 1 c 語言裡可以有兩種注釋方式 和 編譯器在編譯程式時的確會將注釋剔除,但不是簡單的剔除,而是用空格代替...
讀書筆記《c語言深入剖析》
第一章 關鍵字 1.1 register register 變數可能不存放與記憶體中,因此,不能使用 來對訪問變數的位址。1.2 static 靜態全域性變數 作用域僅限於所定義的檔案中,其他檔案使用extern關鍵字也無法訪問 靜態區域性變數 函式體內定義的static變數,儲存於靜態儲存區,只能...
C語言深度剖析 讀書筆記6 return關鍵字
1.在無返回值的函式中,使用return語句 1 無返回值的函式中,return後面不帶有返回值,合法,表示跳出當前函式體 例1 void func1 int main void 列印結果 in func1 before return back to main 2 無返回值的函式中,return後面...