软件代码评审检查点--c-c++

软件代码评审检查点--c-c++

ID:9951753

大小:216.50 KB

页数:22页

时间:2018-05-16

软件代码评审检查点--c-c++_第1页
软件代码评审检查点--c-c++_第2页
软件代码评审检查点--c-c++_第3页
软件代码评审检查点--c-c++_第4页
软件代码评审检查点--c-c++_第5页
资源描述:

《软件代码评审检查点--c-c++》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件代码评审检查点--C-C++文件结构审查【检查点1】文件名是否和实际内容相符?[规范性]〖说明〗文件名应该清晰说明出该文件的功能和作用。〖案例〗略【检查点2】多个模块公用的定义和函数原型的说明是否放在“*.h”?〖说明〗一般来说,*.h文件是公用的头文件,文件中申明的宏、结构、函数原型等,一其他的模块需要引用。〖案例〗略【检查点3】私有的申明和函数原型的说明是否放在“*.inc”?〖说明〗一般来说,*.inc文件是私有的头文件。文件中申明的宏、结构、函数原型等,是仅供本模块使用。〖案例〗略【检查点4】头文件是否使用了#ifndef---#en

2、dif宏开关来防止重复引用?〖说明〗一般来说,头文件通过如下方法避免重复引用:#ifndef_XXX_H_#define_XXX_H_/*文件主体*/#endif【检查点5】函数原型是否没有明确申明返回值类型〖说明〗虽然C语言并不需要精确定义和声明函数返回类型,如果函数没有返回值,则定义为类型void。如果函数没有定义返回类型,编译器将认为其返回类型为int。在这种情况,很难判断函数是否应该有返回值。为了避免这种情况,函数返回类型应该被定义和声明。〖案例〗错误书写:SSfunction();正确书写:voidSSfunction();预处理【检查

3、点1】宏定义是否缺少了“()”符号?〖说明〗对于表达式的宏定义,注意要对变量和表达式本身使用“()”,防止宏展开时出错。〖案例〗案例一注意下面的宏定义极易出现问题:#defineADD(x,y)x+y上面的宏在如下代码中出错:c=ADD(a,b)/2;宏展开后的形式为:c=a+b/2;而不是:c=(a+b)/2;案例二#defineMULTI(x,y)x*y在程序中代码如下:a=MULTI(b+c,2);宏展开后为:a=b+c*2;而不是:a=(b+c)*2;【检查点2】宏定义是否存在不期望或者意料之外的附加效应?〖说明〗宏是一个短行的文本,或者

4、说文本模板,它可以被扩充为更长的文本.通常由宏产生的问题并不在宏定义本身,而往往由其下面的程序引起.采用宏可以使代码简化,但它也可能隐藏重要的细节和关键的操作.〖案例〗#defineSQUARE(x)((x)*(x))...w=SQUARE(++value);实际对宏SQUARE的引用将导致value被增加两次,因为这个语句将被C预处理器扩充以下形式:w=((++value)*(++value));【检查点3】是否存在通过定义宏来改变程序控制流程?〖说明〗通过定义宏来改变程序控制流程实际上是很糟糕的编程技巧〖案例〗错误形式:#defineFOR_

5、ALLfor(i=0;i

6、为几段?〖说明〗不应该让一个条件预处理使一个完整的C语句分为几段.〖案例〗错误形式:if((cond==GLRUN)#ifdefFEAT_A

7、

8、(cond==GLWAIT)#endif){正确形式:#ifdefFEAT_Aif(cond==GLRUN

9、

10、cond==GLWAIT)#elseif(cond==GLRUN)#endif{【检查点7】include中是否包含了绝对路径?〖说明〗#include包含的文件路径应该是相对路径,不应该使用绝对路径,经常出现错误主要是带有盘符,带有根目录符号的写法。〖案例〗以下使用方法在程序中应该禁止:#inc

11、lude"c:includetype.h"/*不应该包括“c:”*/#include"testincludemacro.h"/*不应该包括“”根目录符号*/正确的写法为:#include"testincludetype.h"#include"testincludemacro.h"函数【检查点1】是否对函数的输入参数进行应有合法性检查?〖说明〗对于给其他模块使用的公用函数,要求函数内部对输入参数进行严格全面的参数检查。对于模块内的私有函数,在不是很影响效率的情况下,建议进行全面的参数检查。【检查点2】是否函数完成了必要的功能性

12、?〖说明〗略【检查点3】传送一个数据结构或者一组变量而这些变量需要被修改的情况下,是否传送一个指针更为有效?〖说明〗〖案例〗错误形式:r

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。