白盒测试——C/C++编程规范(14)
本系列文章将带大家一起解析一下白盒测试经常用到的GJB-8114标准规则,其中一共有124条强制性规则。GJB-8114强制性规则是按类分的,一共有13类,前面的文章已经讲过一部分,本文继续往下讲一下跳转控制类和运算处理类规则。
跳转控制类我们现在真正能用到的不是太多,它的标志性符号就是goto 语句,现在的要求是除了汇编语言以外,所有的高级语言都不允许用goto语句,所以这一类我们就不详细展开讲了。
R-1-5-1
禁止从复合语句外goto到复合语句内,或由下向上goto
R-1-5-2
禁止使用setjmp/longjmp
第六类是运算处理类,一共是19条,比较繁杂,把所有的跟运算有关的东西都放到了一起。
R-1-6-1
禁止将浮点常数赋给整型变量
第一个是禁止将浮点常数赋给整型变量,这个是说在我们实际应用中,经常会把一些浮点数赋值给整型变量,它会丢失精度,同时因为浮点数数的范围比较大,整型数数的范围比较小,所以在丢失精度的基础上,有可能还会产生上下溢出的情况。
R-1-6-2
禁止将越界整数赋给整型变量
程序中任何一个变量,它都有一个数据的范围,超出范围以外的数,把它赋给这个变量,是不允许的。这里说整型,实际上也不完全是整型,包括所有的字符、浮点数、长整型数等等都是这样。
R-1-6-3
禁止在逻辑表达式中使用赋值语句
禁止在逻辑表达式中使用赋值语句,这个是说如果你想使用赋值语句,一定要用括号括起来。
R-1-6-4
禁止对逻辑表达式进行位运算
位运算很显然是一个算数运算,在逻辑运算中它就是一个真和假的意义,没有其他的位的概念,所以它不允许你做这种的位运算。