白盒测试——C/C++编程规范(22)
本系列文章将带大家一起解析一下白盒测试经常用到的GJB-8114标准规则,其中一共有124条强制性规则。GJB-8114强制性规则是按类分的,一共有13类,前面的文章已经讲过一部分,本文继续往下讲一下语句使用类规则和循环控制类规则。
R-1-8-4
使用八进制数必须明确注释
像违背示例中展示的是一个八进制的,所以后面必须明确注释八进制。主要原因就是这个O跟0太相似了。
R-1-8-5
数字类型后缀必须使用大写字母
这是一个规定,比如说违背示例中的b=0l,这个l必须是大写。前4个违背示例我们都是比较好理解的,最后这个0.1f大家就有可能不太好理解了,这个为什么也是违反呢?因为我们在print语句中常常用0.1f,但是在这里要求,必须用大写,实际上大写和小写并没有什么区别。
循环控制类
R-1-9-1
for循环控制变量必须使用局部变量
当然我们现在很少有人这样写,一个for循环用全局变量来做控制变量。但是根据我们的测试经验,有一些搞硬件的人写软件,他们比较喜欢用全局变量作为for循环的控制变量。
R-1-9-2
for循环控制变量必须使用整数型变量
在咱们的C语言书上,有一个例子,它的控制变量就是用的浮点数,这本书在这一点上是有些问题的,一定要用一个整数。
R-1-9-3
禁止在for循环体内部修改循环控制变量
像违背示例中展示的,这个i在循环体中修改了,这个是大家经常犯的一个错误,也就是说我们做了一个for循环,然后为了跳出这个for循环,当执行某些东西以后,直接就把这个循环控制变量就给赋值成不满足条件的值,好多人都犯过这样的错误。在这种情况下应该用break来代替的。
再看违背示例中,控制变量不止一个i,同时还有一个flag,尽管这个flag在这里面好像是没有什么意义,但是(i<15)&&flag告诉你是要满足这两个条件,所以这里flag被修改了,也是不可以的。
但是为了达到我们想要的效果,建议大家使用while循环。