/catalog/5b44b7aebbe041098fbfd868e044f805//Document/296736299995205.html/Document/267328648106053.html/Document/267018778099781.html/Document/266676511322181.html/Document/265619597201477.html/Document/235862026059845.html/Document/235543126302789.html/Document/235180874285125.html/Document/234831289405509.html/Document/234475373678661.html/Document/233059773943877.html/Document/232687006150725.html/Document/232354139811909.html/Document/230936619933765.html/Document/230597170643013.html/Document/230237883404357.html/Document/229522033393733.html/Document/228458058801221.html/Document/227760545189957.html/Document/227398664417349.html/Document/227055527931973.html

白盒测试——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
禁止对逻辑表达式进行位运算


位运算很显然是一个算数运算,在逻辑运算中它就是一个真和假的意义,没有其他的位的概念,所以它不允许你做这种的位运算。