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

R-1-7-10
函数返回值的类型必须与定义一致


像违背示例中展示的,这个函数我们定义的时候定义的是一个整型,结果返回的时候返回的是一个浮点数和正整数,这样就是不对的。

R-1-7-11
具有返回值的函数,其返回值如果不被使用,调用时应有(void)说明


如果我们不用这个函数的返回值,只调用它返回的过程,我们调用这个函数的时候,一定要按照遵循示例中那样写,不能像违背示例中那样直接调用。但是实际上违背示例中那样写对结果是没有影响的。

R-1-7-12
无返回值的函数,调用时禁止再使用(void)重复说明


本来我们已经用void声明了这个函数,没有返回值了,调用这个函数的时候,我就不能在用void来重复地定义它了,这个跟咱们变量的相关内容还是有些矛盾的,大家就记住这一条规则就行了。

R-1-7-13
静态函数必须被使用


在程序当中可以声明一个函数为静态函数,原则上来说,这个静态函数必须在其他程序当中被使用到。如果没有被使用到的话,这个函数就是一个冗余的函数。

对于冗余函数来说,我们通常要求不要有冗余的东西,如果有冗余的东西也不算你错。但是你要是有一个静态的冗余的东西,那就认为是错了,这是一个强制性的要求。

R-1-7-14
禁止同一个表达式中调用多个顺序相关函数


通常有一条规则,大家写程序的时候,能不用全局变量就不要用全局变量,能少用全局变量就少用全局变量。由于我们在不同的程序当中有可能会用到同一个全局变量,先执行哪个程序对结果会有一个很大的影响。

你看两个程序哪个在前面执行哪个在后面执行,他们俩好像没有什么关系,但实际上他们俩涉及到了对同一个变量的修改,它的前后顺序对结果有绝对影响,这个时候是不允许来修改它的前后顺序的。

这个引申一点说就是,在我们的硬件上也有一个时序问题,时序有可能对一个功能影响很大。我们用软件启动一个硬件的时序,有时候可能有几条log语句我们认为没什么用,就删掉了,但是涉及到硬件有可能就是错误的,可能会导致实现不了功能。