- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统C 代码走查检查单
嵌入式系统C 代码走查检查单
版本号/修改码:A/01第 PAGE
版本号/修改码:A/01
第 PAGE 1页,共2页
嵌入式系统 C 代码走查检查单
编号:
检查内容
一、变量声明
是否涵盖
项目编号项目名称
项目编号
项目名称
检查人
检查日期
1. 变量命名是否直观,前缀是否表示了变量类型
是
否
2. 宏定义和常量是否全用大写的字母
是
否
3. 静态变量是否加前缀 s_
是
否
4. 全局变量是否尽可能的少用,全局变量是否加前缀g_
是
否
5. 是否尽量避免了使用强制类型转换;如果不得不作类型转换,是否用了显
是
否
式方式
6. 是否在定义变量的同时初始化该变量
是
否
是否没有定义了但不使用的变量
是
否
二、基本语句
7. 是否没有将浮点变量用“==”或“!=”与数字比较
是
否
8. 是否没有在 for 循环体内修改循环变量
是
否
9. 在循环中是否谨慎的使用了 break 和 continue,没有将需要在 break 或
continue 之前处理的语句写到了其后
是
否
10. 每个 case 语句的结尾是否都有break,除了有意设计的重叠
是
否
11. switch 后是否都有最后的default 分支
是
否
12. 是否没有使用goto 语句
是
否
三、结构体和指针
13. 结构体初始化和善后是否都清空了
是
否
14. 是否成对使用了 malloc, free,没有未释放的内存或者释放未申请的无效地
是
否
址
15. Malloc 后是否检查了分配成功
是
否
16. 释放前是否检查了不为 NULL,释放后是否及时置 NULL
是
否
四、函数设计
17. 函数体的规模是否控制在 200 行代码之内,单个函数的分支路径是否控制在 10 条以内; 除了函数入口处的参数合法性检查外,函数出口是否尽可能
是
否
唯一
是否显式定义了返回类型,并有返回值;
对重要的被调函数,调用后是否判断了返回值
是
否
20. 如果参数是指针,且仅作输入用,是否在类型前加const,
是
否
21. 函数的参数个数是否控制在 5 个以内,如果有个别函数超过 5 个参数,那
是
否
么这类函数占整个软件的百分比是否5%
22. 是否使用了类型和数目不确定参数的函数(除了调试打印的printf) 是 否六、程序版式
23. 函数之前和之后是否都加空行
是
否
24. 函数体内的空行是否合适
是
否
25. 一行代码是否只做一件事情
是
否
26. if、for、while、do 等语句是否自占一行
是
否
27. 分界符‘{’和‘}’是否独占一行并且位于同一列,同时与引用它们的语
是
否
句左对齐
28. 缩进是否合格
是
否
29. 每行代码的长度是否在 80 个字符以内
是
否
注释是否及时更新,与代码一致;
注释和代码的比例是否达到 1:5
是
否
32. 复杂段落的结束处是否加了注释
是
否
33. 源程序头的注释是否合格
是
否
34. 函数头的注释是否合格
是
否
35. 头文件是否使用ifndef/define/endif 结构产生预处理块
是
否
是否用 #include filename.h 格式来引用标准库的头文件,
用 #include “filename格.h式”来引用非标准库的头文件
是
否
38. 是否对项目专用的功能用编译选项隔离
是
否
39. 6.走查时其他注意的地方
40. If、else 等分支的逻辑,特别是嵌套时,是否和设计意图一致
是
否
41. 是否有无用的代码和注释
是
否
42. 对数组的边界操作是否合适,没有越界
是
否
43. 循环时的最大、最小边界是否正确
是
否
44. 重要的算法是否易于理解、维护
是
否
文档评论(0)