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

R-1-7-4
禁止使用旧形式的函数参数表定义形式


岁数比较大的人刚开始学习C语言的时候,标准的C语言的写法,在声明一个函数的时候,它参数是不给名字的,只给类型,比如说像违背示例中的类型1、类型2,现在要求必须把类型跟这个类型对应的变量名、参数名对应起来。这个规则对年轻人是没有什么影响的,可能对一些年龄比较大的人影响比较大。

R-1-7-5
函数声明和函数定义中的参数类型必须一致


前面是声明、后面是定义,我们声明的时候声明了几种类型,我们定义这个函数的时候,参数类型又变了,这个是不允许的。现在的C语言中,为了符合C++规则,有一个自动匹配的功能,认为这两个函数不是一个函数。

R-1-7-6
函数声明和函数定义中的返回类型必须一致


函数本身有一个类型,我将它声明了一个类型,我们在定义的时候,必须和声明的类型一致,如果不一致的话就是错的。

R-1-7-7
有返回值的函数必须通过返回语句返回


也就是说凡是定义了一个函数不是void类型的,一定要用return多少或者return什么来返回,只要没用return语句,就是有问题的。

R-1-7-8
禁止无返回值函数的返回语句带有返回值


像违背示例中展示的就是一个没有返回值的void,最后却返回了一个返回值,这样也是不允许的,必须是像遵循示例中展示的不带返回值的。


R-1-7-9
有返回值函数的返回语句必须带有返回值


像违背示例中展示的,这个函数本身是有类型的,所以return那里必须带一个返回值,没带返回值的就是错的。