/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++编程规范(15)
本系列文章将带大家一起解析一下白盒测试经常用到的GJB-8114标准规则,其中一共有124条强制性规则。GJB-8114强制性规则是按类分的,一共有13类,前面的文章已经讲过一部分,本文继续往下讲运算处理类规则。

R-1-6-5
禁止在运算表达式中或函数调用参数中使用++或--操作符


这个就是一个强制性的规定,在一个表达式中,除了对一个变量本身进行操作,在表达式中用++或--的话是不允许的。

R-1-6-6
对变量进行移位运算禁止超出变量长度


对变量进行移位运算禁止超出变量长度,一个变量到底有多长?通常串是八位的,整型是十六位的,长整型是三十二位,但是并不绝对。要看我们用的cpu它对应的数集是什么样的,比如说有些cpu它的串就是十六位的,咱们现在的pc机的整型就是三十二位的。

R-1-6-7
禁止移位操作中的移位数为负数


这个也就是说我们往左或者往右移负多少位,这个严格来说在我们的C语言中犯这种错误的人比较少。但是在汇编中通常是支持往左移负的多少位等等,这个是支持的,只不过在C语言中不允许这样做。

R-1-6-8
数组禁止越界使用


通常是我们按照使用的长度定义了一个数组的长度,在后来修改的过程中,数域增加了,但是这个数组的定义没有改变,就会造成这个数组有可能会超长了。

这个还有一个地方需要注意,array[100]这里,在有些语言中,array下标为100的意思是指0-100,有的是0-99。我们现在为了统一,通常是定义的最长的下标减1是我们能用到的最大的数。

这里有些人可能也会比较困惑,我在写程序的时候并没有越界,为什么在这里不允许呢?这里是为了统一,大家都遵循这样一个规则。