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

R-1-1-23函数参数表为空时,必须使用void 明确说明

以前我们学习C语言的时候,可能老师会说括号里面没有参数,可以不写参数直接用括号来代替了,现在规定,括号里面如果没有参数,必须用一个void 来说明,比如说你这个函数不希望它返回参数,也需要用void作为它的类型声明。实际上违反它并不会使程序出错,但是它是违反我们强制性规则的。

版面书写类

R-1-2-1循环体必须用大括号括起来

比如说像违背示例中所展示的,rcode没有用大括号括起来,这样大家一看是不舒服的,所以有人就会把它和for写到一行去,这样是不符合要求的,必须要另起一行,用大括号括起来。

R-1-2-2 if、else if、else 必须用大括号括起来

像上面第一条的例子讲的,循环体不止for这一种,还有if、else if、else的等,这些在我们写程序时,只要是一行,我们就容易把它放到上一行中去,这样显得用的函数更少,更简洁美观,但是现在GJB-8114要求必须另起一行,用大括号括起来。这个实际上还有一个while循环语句也是这样要求的。

R-1-2-3禁止在头文件前有可执行代码

违背示例中展示的,头文件写到了一个函数里面,或者写到中间都是规则不允许的情况。咱们这个例子举得不是太好,规则中说的是“禁止在头文件前有可执行代码”他放到最前面了,我们通常会认为这样是没有可执行代码,把它放在后面,这个例子就更确切了。不过实际上它放在头文件里面了,也依然是违反规则了。