商品簡介
程式設計可謂是一個汗牛充棟的話題。與傳統的C/C++程式設計方面的書籍不同,本書從另外一個視角——程式缺陷的角度來探討程式設計與優化。
本書從作者所從事的軟體測試專案中精選了與C/C++語言有關的程式缺陷,主要包括編碼風格、記憶體管理、記憶體洩漏、緩衝區溢位、指標使用、安全等方面。對於每一種缺陷,通過實例分析了缺陷產生的原因,並給出了具體的修改和優化方法。面對這些缺陷,程式師會有一種似曾相識、相見恨晚的感覺。通過這些缺陷,程式師能夠跳出固有的程式設計思維定式,使其翻然醒悟,茅塞頓開。
目次
目 錄
第1章 語言使用基本問題 1
1.1 變數使用問題 1
1.2 運算子使用問題 24
1.3 函數問題 47
1.4 條件陳述式問題 57
1.5 迴圈語句問題 64
1.6 數數值型別轉換問題 67
第2章 記憶體管理 85
2.1 記憶體分配與使用 87
2.2 記憶體洩漏 96
第3章 緩衝區溢位 118
3.1 陣列越界 119
3.2 數據越界 124
3.3 字串操作溢出 125
第4章 指標問題 141
4.1 空指針解引用 142
4.2 指針非法使用 148
第5章 安全缺陷 158
5.1 外部輸入安全缺陷 158
5.2 資源洩漏 162
5.3 其他 169
第6章 與類有關的程式設計缺陷 174
第7章 其他 208
7.1 預處理 208
7.2 異常 215
7.3 多執行緒和同步性 226
7.4 代碼不可達 229
附錄A 常用靜態分析工具 234
A.1 PolySpace——執行階段錯誤靜態檢查工具 234
A.1.1 PolySpace Verifier 235
A.1.2 PolySpace Viewer 238
A.2 Klocwork——代碼靜態檢查工具 240
A.2.1 工程創建與分析 241
A.2.2 分析結果查看 244
A.3 Testbed——靜態和動態測試工具 250
A.3.1 單個文件分析 251
A.3.2 分析結果查看 254
A.3.3 多個檔批量分析 263
A.4 McCabe IQ2——軟體品質保證工具 265
A.4.1 McCabe EQ 265
A.4.2 McCabe Test 272
A.4.3 McCabe Reengineer 273
參考文獻 274