程式設計可謂是一個汗牛充棟的話題。與傳統的C/C++程式設計方面的書籍不同,本書從另外一個視角——程式缺陷的角度來探討程式設計與最佳化。本書從作者所從事的軟體測試項目中精選了與C/C++語言有關的程式缺陷,主要包括編碼風格、記憶體管理、記憶體泄漏、緩衝區溢出、指針使用、安全等方面。對於每一種缺陷,通過實例分析了缺陷產生的原因,並給出了具體的修改和最佳化方法。面對這些缺陷,程式設計師會有一種似曾相識、相見恨晚的感覺。通過這些缺陷,程式設計師能夠跳出固有的程式設計思維定式,使其翻然醒悟,茅塞頓開。
基本介紹
- 書名:C/C++程式缺陷與最佳化
- 出版社:電子工業出版社
- 頁數:273頁
- 開本:16
- 品牌:電子工業出版社
- 作者:於秀山 許峰
- 出版日期:2014年4月1日
- 語種:簡體中文
- ISBN:7121226324
基本介紹
內容簡介
作者簡介
圖書目錄
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.1PolySpace——運行時錯誤靜態檢查工具234
A.1.1PolySpaceVerifier235
A.1.2PolySpaceViewer238
A.2Klocwork——代碼靜態檢查工具240
A.2.1工程創建與分析241
A.2.2分析結果查看244
A.3Testbed——靜態和動態測試工具250
A.3.1單個檔案分析251
A.3.2分析結果查看254
A.3.3多個檔案批量分析263
A.4McCabeIQ2——軟體質量保證工具265
A.4.1McCabeEQ265
A.4.2McCabeTest272
A.4.3McCabeReengineer273
參考文獻274
序言
雖然大多數程式設計師都經過了系統的程式設計方面的培訓,但編寫的軟體中仍然存在大量的缺陷,甚至是很低級的缺陷,這些缺陷嚴重影響了軟體質量。
“軟體中為何還會存在這樣的缺陷?”這是令管理者和程式設計師經常困惑的一個問題,也是筆者所關注的問題。筆者長期從事軟體測試方面的工作,親歷了大量各式各樣的軟體缺陷,這些缺陷使筆者萌生了從另外一個角度透視程式設計的想法。
與傳統的C/C++程式設計方面的書籍不同,本書從另外一個視角——程式設計缺陷的角度來探討程式設計。程式設計師長期形成的習慣性思維,使其難以覺察到自身在程式設計方面存在的問題,可謂“不識廬山真面目,只緣身在此山中”。本書列舉了大量來自實際項目中出現的軟體缺陷,這些缺陷就像一面鏡子,面對這些缺陷,程式設計師會有一種似曾相識、相見恨晚的感覺。通過這些缺陷,程式設計師能夠跳出固有的程式設計思維定式,使其翻然醒悟,茅塞頓開。
前車之覆,後車之鑑,期望本書能夠使讀者充分借鑑前人在C/C++程式設計方面的經驗教訓,快速提升自己的程式設計水平。
本書由於秀山、許峰、李華瑩、劉然、於長鉞、楊玲萍編著。在本書的編寫過程中,尹浩、嚴少清、董昕、劉怡靜同志參與了部分章節的編寫工作,在此向他們表示衷心感謝。
鑒於作者才疏學淺,書中難免有遺漏和錯誤之處,敬請讀者斧正。
作 者
2013 年秋於北京