软件代码检查单(C语言) 项目名称 项目编码 检查方式 □审查 □走查 □单人复审 检查人 检查对象 检查日期 执行类别说明 红色类:无条件执行 黑色类:建议执行 编号 检 查 项 结论 备 注 设计类 1 代码与详细设计一致性、完整性检查 2 代码与协议一致性检查 3 流程设计缺陷检查 4 关键算法正确性检查 5 状态机机制是否有缺陷 6 数据结构设计合理性检查(包括复杂度检查) 7 异常处理是否全面(各种异常情况都已处理) 接口类 8 跨模块消息接口是否有理解不一致问题 9 数据类型是否与接口规范一致 10 参数取值范围是否与接口规范一致 11 跨模块函数接口使用正确性检查 变量检查(语法类) 12 全局变量声明检查: 全局变量应在头文件中声明 在 一 个 公共 的 .h 文件(所有.c都 包 含 该头文件)中声明 13 变量重名检查: 函数内外、嵌套代码内外是否有变量同名。 是否有局 部变量与全局变量同名。 14 局部静态变量定义检查: 不建议使用局部静态变量 15 全局静态变量定义检查: 只在本 C 中使用的变量使用静态变量(static)定义 16 系统级全局变量引用检查:鉴于系统级全局变量的重要性,建议:在文件的开始部分,显式列出本文件所引用的系统级全局变量;在函数的变量说明部分,显式列出本函数所引用的系统级全局变量; 编号 检 查 项 结论 备 注 17 文件级全局变量检查:文件级全局变量实际上是局部变量,由于文件级全局变量会减少程序的可读性,建议:尽可能少用文件级全局变量;在文件的开始部分,集中列出文件级全局变量的定义;在函数的变量说明部分,显式列出本函数所引用的文件级全局变量; 18 变量大小定义检查: 是否存在可能导致堆栈溢出的变量分配?避免出现比较 大的局部变量(>1K BYTES)。函数调用层次比较多时, 入参数应考虑采用传地址调用(指针)而不是传值调用。 19 缓冲区定义检查: 缓冲区是否过小,对缓冲区赋值时,要注意缓冲区 的范围。另缓冲区过大,容易引起栈的崩溃。 20 宏定义中如果包含表达式或变量,表达式和变量必须用小括号括起来。 21 数据类型问题: (1)变量的数据类型有错误吗? (2)存在不同数据类型的赋值吗?例如,无意中使代码为BYTE 变量赋予一个WORD 数值? (3)存在不同数据类型的比较吗?例如对 DWORD 类型的 dwIndex判断时,要写成 if(dwIndex!=0Xffffffff),而不能写成 if(dwIndex!=...