• 1.摘要
  • 2.基本信息
  • 3.基本介绍
  • 3.1.内容简介
  • 3.2.作者简介
  • 4.图书目录
  • 5.序言

C/C++程序缺陷与优化

于秀山著书籍

程序设计可谓是一个汗牛充栋的话题。与传统的C/C++程序设计方面的书籍不同,本书从另外一个视角——程序缺陷的角度来探讨程序设计与优化。 本书从作者所从事的软件测试项目中精选了与C/C++语言有关的程序缺陷,主要包括编码风格、内存管理、内存泄漏、缓冲区溢出、指针使用、安全等方面。对于每一种缺陷,通过实例分析了缺陷产生的原因,并给出了具体的修改和优化方法。面对这些缺陷,程序员会有一种似曾相识、相见恨晚的感觉。通过这些缺陷,程序员能够跳出固有的程序设计思维定式,使其翻然醒悟,茅塞顿开。

基本信息

  • 书名

    C/C++程序缺陷与优化

  • 作者

    于秀山 许峰

  • 出版社

    电子工业出版社

  • 出版日期

    2014年4月1日

  • 页数

    273页

基本介绍

内容简介

《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 年秋于北京