C++/C代码审查表


文件结构


重要性


审查项


结论


头文件和定义文件的名称是否合理?


头文件和定义文件的目录结构是否合理?


版权和版本声明是否完整?


重要


头文件是否使用了 ifndef/define/endif 预处理块 ?


头文件中是否只存放“声明”而不存放“定义”


……


程序的版式


重要性


审查项


结论


空行是否得体?


代码行内的空格是否得体?


长行拆分是否得体?


“{” 和 “}” 是否各占一行并且对齐于同一列?


重要


一行代码是否只做一件事?如只定义一个变量,只写一条语句。


重要


If 、 for 、 while 、 do 等语句自占一行,不论执行语句多少都要加“ {} ”。


重要


在定义变量(或参数)时,是否将修饰符 * 和 & 紧靠变量名?


注释是否清晰并且必要?


重要


注释是否有错误或者可能导致误解?


重要


类结构的 public, protected, private 顺序是否在所有的程序中保持一致?


……


命名规则


重要性


审查项


结论


重要


命名规则是否与所采用的操作系统或开发工具的风格保持一致?


标识符是否直观且可以拼读?


标识符的长度应当 符合“ min-length && max-information”原则?


重要


程序中是否出现 相同的局部变量和全部变量?


类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则?


静态变量、全局变量、类的成员变量是否加前缀?


……


表达式与基本语句


重要性


审查项


结论


重要


如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作 顺序?


是否编写太复杂或者多用途的复合表达式?


重要


是否将复合表达式与“真正的数学表达式”混淆?


重要


是否用隐含错误的方式写 if 语句 ? 例如

( 1 )将 布尔变量直接与 TRUE 、 FALSE 或者 1 、 0 进行比较。

( 2 )将 浮点变量用“ ==”或“!=”与任何数字比较 。

( 3 )将 指针变量用“ ==”或“!=”与NULL比较 。


如果循环体内存在逻辑判断,并且循环次数很大,是否已经将逻辑判断移到循环体的外面?


重要


Case语句的结尾是否忘了加break?


重要


是否忘记写 switch的default分支?


重要


使用 goto 语句时是否留下隐患? 例如跳过了某些对象的构造、变量的初始化、重要的计算等。

时间: 2024-10-29 07:41:30

C++/C代码审查表的相关文章

VC++超级教程

嘿嘿嘿,这个是在黑客防线上看到的,写的很不错,可惜就是没有了前两章的内容,不错,整体已经非常不错了 . 来源:http://www.hacker.com.cn/newbbs/dispbbs.asp?boardid=12&id=27259 第3章 命名规则比较著名的命名规则当推Microsoft公司的"匈牙利"法,该命名规则的主要思想是"在变量和函数名中加入前缀以增进人们对程序的理解".例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p.如果一个变量由

高质量C++/C编程指南

              高质量C++/C编程指南         文件状态 [ ] 草稿文件 [√] 正式文件 [ ] 更改正式文件 文件标识:   当前版本: 1.0 作    者: 林锐 博士 完成日期: 2001年7月24日     版本历史   版本/状态 作者 参与者 起止日期 备注 V 0.9 草稿文件 林锐     2001-7-1至 2001-7-18 林锐起草 V 1.0 正式文件 林锐     2001-7-18至 2001-7-24 朱洪海审查V 0.9, 林锐修正草稿

电脑中通过修改注册表解决网页无法添加到收藏夹的方法

  电脑中通过修改注册表解决网页无法添加到收藏夹的方法.最近有不少用户反映在电脑中出现了无法添加网页到收藏夹的问题,尝试了各种方法都无法解决这个问题.对此,在接下来的内容中,小编为大家提供了一种通过修改注册表解决网页无法添加到收藏夹的方法,大家可以参考一下. 1.按Win+R打开运行,输入regedit并按回车键; 2.在注册表编辑器依次展开HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/UserShell

WEB表单设计

设计师不再只是为互联网创造漂亮美观的图形那么简单了,作为一个WEB设计师,我们还需要考虑一些其他的问题,比如用户体验,算法,代码等等.如今用户体验设计越来越重要,对于WEB表单的设计尤其如此. WEB表单设计的目标是设计出一套让用户能够从填表到点击提交按钮的最简单的流程.这个过程中不需要太多的炫目效果,虽然jQuery的表单插件一直都很受欢迎.在这片文章中我们只关注于表单的用户体验和交互过程.这里的概念也能够有效的帮助你减少用户在填表过程中的挫折感. 保持醒目和简洁 我听过不计其数的用户抱怨注册

Ajax 提交表单数据到入库的全盘操作流程

 以下是Ajax 提交表单数据到入库的全盘操作流程,希望本文对广大php开发者有所帮助,感谢阅读本文 *******php项目中当我们要对数据库进行写入操作时,有时会因为代码没有做防sql注入工作,导致各种不可预知的错误*******    1,index.htm 这是一个很简单的注册页面l 我这是以ajax形式提交数据   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt

php列出mysql表所有行和列的方法

 这篇文章主要介绍了php列出mysql表所有行和列的方法,涉及php操作mysql数据库的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php列出mysql表所有行和列的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: <html> <head> <title>Selecting Data</title> </head> <body> <?php $user = "root&quo

保护Windows注册表

保护注册表是很重要的,有很多不同的工具可以实现这一目的.当没有安全设置时,用户可能的错误会更多.幸运的是,他们可以有几中方法来保护Windows注册表,在注册表失败时他们可以用额外的拷贝来恢复注册表.下面就是其中的一些方法:   1.使用windows备份软件   注:Win95和Win98备份程序有部分区别,在这里只讲Win98的备份程序.   Win98中包括一个备份程序.当安装Win98时如果你选择"自定义安装",或者你可以在控制面板中的添加/删除程序里安装它.当你安装了这个备份

Win7写入注册表时出错如何解决

  1.定位到弹出错误提示的注册表路径,懒蛇这里打开的是HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain. 2.在main键值上点击鼠标右键,弹出的右键菜单选中权限.windows7教程 3.弹出窗口中,勾选完全控制权限,并点击高级按钮,勾选"包括可从该对象的父项继承权限"和"使用可从此对象继承的权限替换所有子对象权限" 4.点击确定,保存设置. 5.此时新建键值,顺利新建成功.

注册表优化方法

系统注册表的简易优化方法 注册表是电脑的重要数据资源.优化注册表有利于系统的快速运行. 下面就来看一下我的注册表优化方法. 修改磁盘缓存加速XP 磁盘缓存对XP运行起着至关重要的作用,但是默认的I/O页面文件比较保守.所以,对于不同的内存,采用不同的磁盘缓存是比较好的做法. 3lian素材 到注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\IoPageLockLimi