软件代码走查清单检查人:________________检查日期:20年_____月_____日审查内容:____________________________________________________________________审查结果:通过□不通过□说明:____________________________________________________________________序号总则条款执行情况说明一、文件结构1每一个定义文件与其专用的头文件(如果有的话)名称一一对应,共用的头文件只有一个,所有的重定义语句都放在共用的头文件中;是[]否[]免[]23456头文件中一般只存放“声明”,除“模板”以外是[]否[]免[]不存放其他的“定义”;是[]否[]免[]所有的函数和全局变量在头文件中进行声明;是[]否[]免[]头文件和定义文件目录结构合理;每个程序文件的头部必须包含完整的版权和版本声明;重要头文件要使用ifndef/define/endif预处理块;是[]否[]免[]是[]否[]免[]二、程序版式7两个函数体(方法)之间留空行,类定义之间留是[]否[]免[]空行,类的成员变量声明及方法声明之间以空行分隔;除非不得已,不要拆分一个语句到几行,超过80是[]否[]免[]个字符的长行必须拆分成多行,且拆分时尽量保持语句中逻辑结构独立的部分在同一行内,操作符放在新行之首,函数声明语句由于参数过多需要拆分成多行时,参数的类型放在新行之首;8序总则条款号9“{”与其对应的“}”必须各占一行、对齐于其前是[]否[]免[]面一行语句起始处的同一列,程序体中最外层的“{”与“}”必须位于顶格,“{”与“}”体内的内容缩进四个字符;执行情况说明1011一行代码只做一件事,如只定义一个变量,只写是[]否[]免[]一条语句,也不要出现类似“while(counter++<5)”的语句;结构(类)类型定义体内变量的定义独占一行,是[]否[]免[]即使两个变量属于同一类型,也要分成两行来定义;1213141516171819结构(类)类型定义体内不要定义另一个结构是[]否[]免[](类),但可以引用在定义体外定义的类为类型;是[]否[]免[]If、for、while、do等语句自占一行,不论执行多少行语句,即使不执行任何语句,也要加“{”和“}”;在定义变量(或参数)时,是否将修饰符“*”和是[]否[]免[]“&”紧靠变量名而不是类型名;注释行数一般不宜少于有效代码行数的四分之一;是[]否[]免[]每个函数(方法)定义前必须以清晰的备注对其是[]否[]免[]功能进行描述,且描述符合要求每个结构(类)定义中体中声明的每个变量之后是[]否[]免[]要加备注描述该成员变量的作用;注释不能与代码不一致;是[]否[]免[]类(结构)定义体中对成员变量及成员方法的定是[]否[]免[]义必须以空行分开,无论是方法都依照其属性以public,protected,private为次序进行声明;三、命名规则2021对于全局变量的命名,必须以“g_”开头,局部是[]否[]免[]变量不得以“g_”开头;是[]否[]免[]变量的命名尽量有意义,如果没按意义进行命名,则必须在声明变量时加上备注解释其意义;四、表达式与基本语句22代码行中的运算符超过两个,必须用括号清楚地确定表达式的操作顺序;是[]否[]免[]序号232425总则条款if、while语句后面的表达式必须不论长短使用括号;执行情况是[]否[]免[]是[]否[]免[]是[]否[]免[]说明行语句中的复合表达式不宜超过五个操作符,超过五个,分成几个语句来进行运算;可以在循环体外的判断语句要避免放在循环体内执行,循环次数大的时候尤其要避免这种情况;循环语句或者判断语句不要超过五重,超过五重时,想办法在不改变逻辑的情况下重新整理代码;在布尔表达式中不要错误地进行比较,比如说用布尔变量与“TRUE”、“FALSE”或者0、1进行比较,用浮点变量与其它数字进行等于或不等的比较,用指针变量所指内容与“NULL”进行比较;尽量不要使用“goto”语句时,确实需要使用时要确保不留隐患,例如跳过了某些对象的构造、变量的初始化、重要的计算等;26是[]否[]免[]27是[]否[]免[]28是[]否[]免[]五、常量293031对特殊的数据必须定义直观的常量来表示,不能每次都直接在表达式中使用数字;在C++程序中,要用const常量取代宏常量;如果某一常量与其它常量密切相关,应在定义中包含这种关系,比如地球直径是地球半径的两倍等;类内的const数据成员只在某...