C/C++程式缺陷与最佳化


C/C++程式缺陷与最佳化

文章插图
C/C++程式缺陷与最佳化【C/C++程式缺陷与最佳化】程式设计可谓是一个汗牛充栋的话题 。与传统的C/C++程式设计方面的书籍不同,本书从另外一个视角——程式缺陷的角度来探讨程式设计与最佳化 。本书从作者所从事的软体测试项目中精选了与C/C++语言有关的程式缺陷,主要包括编码风格、记忆体管理、记忆体泄漏、缓冲区溢出、指针使用、安全等方面 。对于每一种缺陷,通过实例分析了缺陷产生的原因,并给出了具体的修改和最佳化方法 。面对这些缺陷,程式设计师会有一种似曾相识、相见恨晚的感觉 。通过这些缺陷,程式设计师能够跳出固有的程式设计思维定式,使其翻然醒悟,茅塞顿开 。
基本介绍书名:C/C++程式缺陷与最佳化
出版社:电子工业出版社
页数:273页
开本:16
品牌:电子工业出版社
作者:于秀山 许峰
出版日期:2014年4月1日
语种:简体中文
ISBN:7121226324
基本介绍内容简介《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.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++程式设计几乎成为每一个程式设计师的必修课 。虽然大多数程式设计师都经过了系统的程式设计方面的培训,但编写的软体中仍然存在大量的缺陷,甚至是很低级的缺陷,这些缺陷严重影响了软体质量 。“软体中为何还会存在这样的缺陷?”这是令管理者和程式设计师经常困惑的一个问题,也是笔者所关注的问题 。笔者长期从事软体测试方面的工作,亲历了大量各式各样的软体缺陷,这些缺陷使笔者萌生了从另外一个角度透视程式设计的想法 。与传统的C/C++程式设计方面的书籍不同,本书从另外一个视角——程式设计缺陷的角度来探讨程式设计 。程式设计师长期形成的习惯性思维,使其难以觉察到自身在程式设计方面存在的问题,可谓“不识庐山真面目,只缘身在此山中” 。本书列举了大量来自实际项目中出现的软体缺陷,这些缺陷就像一面镜子,面对这些缺陷,程式设计师会有一种似曾相识、相见恨晚的感觉 。通过这些缺陷,程式设计师能够跳出固有的程式设计思维定式,使其翻然醒悟,茅塞顿开 。前车之覆,后车之鉴,期望本书能够使读者充分借鉴前人在C/C++程式设计方面的经验教训,快速提升自己的程式设计水平 。本书由于秀山、许峰、李华莹、刘然、于长钺、杨玲萍编着 。在本书的编写过程中,尹浩、严少清、董昕、刘怡静同志参与了部分章节的编写工作,在此向他们表示衷心感谢 。鑒于作者才疏学浅,书中难免有遗漏和错误之处,敬请读者斧正 。作 者 2013 年秋于北京