[編程語言]C陷阱與缺陷

內容摘要

作者以自己1985年在Bell實驗室時發表的一篇論文爲基礎,結合自己的工作經驗擴展成爲這本對C程序員具有珍貴价值的經典著作。寫作本書的出發點不是要批判C語言,而是要幫助C程序員繞過編程過程中的陷阱和障礙。

全書分爲8章,分別從詞法分析、語法語義、連接、庫函數、預處理器、可移植性缺陷等幾個方面分析了C語言編程中可能遇到的問題。最後,作者用一章的篇幅給出了若干具有實用價值的建議。

本書適合有一定經驗的C程序員閱讀學習,即便你是做嵌入式開發C編程高手,本書也應該成爲你的案頭必備書籍。

目錄

第0章導讀

第1章詞法“陷阱”

1.1=不同於==

1.2&和|不同於&&和||

1.3詞法分析中的“貪心法”

1.4整型常量

1.5字符與字符串

第2章語法“陷阱”

2.1理解函數聲明

2.2運算符的優先級問題

2.3注意作爲語句結束標誌的分號

2.4switch語句

2.5函數調用

2.6“懸掛”else引發的問題

第3章語義“陷阱”

3.1指針與數組

3.2非數組的指針

3.3作爲參數的數組聲明

3.4避免“舉隅法”

3.5空指針並非空字符串

3.6邊界計算與不對稱邊界

3.7求值順序

3.8運算符&&、||和!

3.9整數溢出

3.10爲函數main提供返回值

第4章連接

4.1什麼是連接器

4.2聲明與定義

4.3命名衝突與static修飾符

4.4形參、實參與返回值

4.5檢查外部類型

4.6頭文件

第5章庫函數

5.1返回整數的getchar函數

5.2更新順序文件

5.3緩衝輸出與內存分配

5.4使用ernlo檢測錯誤

5.5庫函數signal

第6章預處理器

6.1不能忽視宏定義中的空格

6.2宏並不是函數

6.3宏並不是語句

6.4宏並不是類型定義

第7章可移植性缺陷

7.1應對C語言標準變更

7.2標識符名稱的限制

7.3整數的大小

7.4字符是有符號整數還是無符號整數

7.5移位運算符

7.6內存位置0

7.7除法運算時發生的截斷

7.8隨機數的大小

7.9大小寫轉換

7.10首先釋放,然後重新分配

7.11可移植性問題的一個例子

第8章建議與答案

8.1建議

8.2答案

附錄A:PRINTF,VARARGS與STDARG

附錄B:Koenig和Moo夫婦訪談

下載地址:http://pan.baidu.com/s/1mgiazBM


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