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

前面的声明定义类和版面书写类实际上不会引起程序很大的运行错误,但是指针使用类往往能够引起程序跑飞、异常等等问题。这类规则是一定不能够违反的规则。

R-1-3-1禁止指针的指针超过两级

大家都知道C语言最灵活的地方就是指针,大家使用C语言有两个原因,第一个原因是因为它计算得快,第二个原因是它支持各种指针操作。正式因为它太灵活了,它支持指针,所以在指针上最容易犯错误,所以在咱们这个规则中,使用指针最多只能使用两级,再多就不允许了。

R-1-3-2函数指针的使用必须加以&明确说明

像违背示例中展示的,我们判断一个函数或者数组的地址是否为空,一定要用到一个取地址的符号——&。我们以前的C语言都支持取函数的地址时是不用&的,取数组的地址也不用&,现在规定不允许这样用了,取地址时,一定要用&。这就是一种强制性的要求,实际上违背示例和遵循示例运行起来并没有什么区别。

R-1-3-3禁止对参数指针进行赋值

像违背示例中展示的,我们存过来的参数是一个指针,在这里面我们不能针对这个指针将它重新指向另一个地址。我们可以对这个地址进行读写操作,比如说遵循示例表示的那样,但是我们不可以把地址给修改了。为什么不能修改这个地址呢?因为一旦修改了地址,就容易引起调用它的程序出问题。