2-11章 筆記

  1. 註釋不能嵌套,// 形式的不能跨行。
    C語言歷史:Old Style C、 C89(ANSI C)、 C99(ISO/IEC9899:1999)

  2. main函數的特殊之處,在於執行程序時它自動被操作系統帶哦用,操作系統就認準了main這個名字,除了名字特殊以外,main函數和別的函數沒有區別。

C89 要求所有的聲明寫在所有語句之前,而C99的新特性允許語句和聲明按任意順序排列,只要標識符都遵循先聲明後使用就好了。

  1. main函數最標準的形式:int main(int argc, char *argv[])
    拋棄以前的寫法:main() {} ,這種語法是爲了兼容 Old Style C

  2. 任何一個表達式都有值和類型兩個屬性。函數也是表達式。
    void 類型的函數返回值,其實也是有值的,爲了語法和語義的統一,編譯器的語法解析比較好實現。

  3. 一個容易被用戶接受的設計應該遵循最少例外原則。
    void foo(int hour, int minute, char c) 爲什麼不寫成 void foo(int hour, minute; char c)呢?
    這也是從 Old Style C 繼承下來的,只是一種語法罷了。

  4. 注意區分用戶命令和用戶管理命令。
    /bin 和 /usr/bin ; /sbin 和 /usr/sbin。

  5. man :1(用戶命令) 2(系統調用) 3(庫函數) 4(特殊文件) 5(系統配置文件的格式) 6(遊戲) ……

  6. 全局變量在編譯時賦值。

  7. 能用循環做的事情,遞歸都能做。反之亦然。
    計算機指令能做的所有事情,就是:數據存取、運算、測試和分支、循環(或遞歸)。
    計算機指令無法執行的事情,高級編程語言也無法做到。至於爲什麼要這樣設計計算機指令?就要問問圖靈了。或者讀一讀計算機科學的書籍了。

  8. null: Non-printable

  9. C 代碼風格:
    關鍵字 if、while、for,與其後的控制表達式的(括號之間插入一個空格分隔,但是括號內的表達式應該緊貼括號)
    雙目運算符的兩側各插入一個空格分隔,單目運算符和操作數之間不加空格
    , ; 之後加空格,這是英文的書寫習慣
    由於 Unix 系統標準的字符終端是24行80列的,接近或大於80個字符的較長語句要折行寫。

  10. 調試的基本思想:分析現象 -> 假設錯誤原因 -> 產生新的現象去驗證假設
    gdb 調試:http://www.vimer.cn/2009/11/%E4%BD%BF%E7%94%A8gdb%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F%E8%AF%A6%E8%A7%A3.html

  11. bug - free很難。

  12. 學習 C 語言,就不得不去學習計算機底層,要不然一個scanf都寫不好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章