软件代码评审检查点--C -C ++ 文件结构审查 【检查点1 】文件名是否和实际内容相符
[规范性] 〖说明〗文件名应该清晰说明出该文件的功能和作用
〖案例〗略 【检查点2 】多个模块公用的定义和函数原型的说明是否放在“*
〖说明〗一般来说,*
h文件是公用的头文件,文件中申明的宏、结构、函数原型等,一其他的模块需要引用
〖案例〗略 【检查点3 】私有的申明和函数原型的说明是否放在“*
〖说明〗一般来说,*
inc文件是私有的头文件
文件中申明的宏、结构、函数原型等,是仅供本模块使用
〖案例〗略 【检查点4 】头文件是否使用了#ifndef---#endif宏开关来防止重复引用
〖说明〗一般来说,头文件通过如下方法避免重复引用: #ifndef _XXX_H_ #define _XXX_H_ /*文件主体*/ #endif 【检查点5 】函数原型是否没有明确申明返回值类型 〖说明〗虽然C语言并不需要精确定义和声明函数返回类型,如果函数没有返回值,则定义为类型void
如果函数没有定义返回类型,编译器将认为其返回类型为int
在这种情况,很难判断函数是否应该有返回值
为了避免这种情况,函数返回类型应该被定义和声明
〖案例〗错误书写: SSfunction() ; 正确书写: void SSfunction() ; 预处理 【检查点1 】宏定义是否缺少了“( )”符号
〖说明〗对于表达式的宏定义,注意要对变量和表达式本身使用“( )”,防止宏展开时出错
〖案例〗案例一 注意下面的宏定义极易出现问题: #define ADD(x, y) x + y 上面的宏在如下代码中出错: c = ADD(a, b) /2; 宏展开后的形式为: c = a + b /2; 而不是: c = (a + b) /2; 案例二 #define MULTI(x, y