国军标 软件测评 静态分析常见问题总结

违背国军标R-x-x-x   禁止#define被重复定义。没有用’#undef’解除前面的定义
违背国军标R-1-1-7   以函数形式定义的宏,参数和结果必须用括 括起来
违背国军标R-1-1-13  函数声明中必须对参数类型进行声明,并带有变量名
违背国军标R-1-1-14  函数声明必须与函数原型一致
违背国军标R-1-1-16  外部声明的变量,类型必须与定义一致
违背国军标R-1-1-18  数组定义禁止没有显式的边界限定
违背国军标R-1-1-23  函数参数表为空时,必须使用void明确说明。
违背国军标R-1-2-2  if、else if、else必须用大括 括起来。
违背国军标R-1-2-4  引起二义性理解的逻辑表达式,必须使用括 显式说明优先级顺序。
违背国军标R-1-2-5  逻辑判别表达式中的运算项必须要使用括 。
违背国军标R-1-2-6  禁止嵌套注释。注释要规范
违背国军标R-1-3-8  动态分配的指针变量第一次使用前必须进行是否为NULL的判别。
违背国军标R-1-4-1  在if-else if语句中必须使用else分支。
违背国军标R-1-4-6  除枚举类型列举完全外,switch必须要有default。
违背国军标R-1-6-3  禁止在逻辑表达式中使用赋值语句。
违背国军标R-1-6-6  对变量进行移位运算禁止超出变量长度
违背国军标R-1-6-8  数组禁止越界使用。(需求的不确定性会导致设计修改冗余设计,确定性不足)
违背国军标R-1-7-7  有返回值的函数必须通过返回语句返回。
违背国军标R-1-7-10  函数返回值的类型必须与定义一致
违背国军标R-1-7-11  具有返回值的函数,其返回值如果不被使用,调用时应有(void)说明。
违背国军标R-1-7-15  禁止在函数参数表中使用省略 void putToDebug(const char *format, …);
违背国军标R-1-8-1  禁止不可达语句。条件判断中,分支永远不会被执行。
违背国军标R-1-9-3  禁止在for循环体内部修改循环控制变量。
违背国军标R-1-10-1  浮点数变量赋给整型变量必须强制转换。
违背国军标R-1-11-1  变量禁止未赋值就使用。
违背国军标R-1-11-2  变量初始化禁止隐含依赖于系统的缺省值。
违背国军标R-1-11-4  枚举元素定义中的初始化必须完整。
违背国军标R-1-12-2  禁止对指针进行大于或小于的逻辑比较。
违背国军标R-1-12-4  禁止对无符 数进行大于等于零或小于零的比较。
违背国军标R-1-12-5  禁止无符 数与有符 数之间的直接比较。涉及到隐式转换:整型转换为无符 整型。
违背国军标R-1-13-2  禁止函数形参与全局变量同名。
违背国军标R-1-13-11  禁止单独使用小写字母i或大小字母O作变量名。

主要问题总结:

1.外部引用变量类型错误;
2.数组越界;
3.缓存及变量赋初值;全局和局部声明变量赋初值
4.设置异常保护/边界限制处理;
5.c语言处理语法上的不规范操作。c语句后{,}以及调用系统函数后{,}函数无入口参数或无返回值需要用void以及define定义用括
 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年7月22日
下一篇 2019年7月22日

相关推荐