白盒测试——C/C++编程规范(3)
本系列文章将带大家一起解析一下GJB-8114标准规则,其中一共有124条强制性规则。GJB-8114强制性规则是按类分的,一共有13类,前面的文章已经讲过一部分,本文继续往下进行。

R-1-1-9结构体定义中禁止含有无名结构体


在一个结构体中又包含一个结构体,里面这个结构体一定要有一个对应的变量名,这样你才能够引用这个结构体中的元素,如果没有变量名的话就不能引用这个元素。像违背示例中展示的,比如说我要用到这里的xs,它是哪一个元素下面对应的元素呢?遵循示例中就告诉你,它是Scoor结构元素下对应的一个元素。

R-1-1-10位定义的有符号整型变量位长必须大于1



由于符号位至少要占有1位,所以定义一个有符号的位变量的时候,至少要达到2位才能表示有符号的位变量是整的还是负的。

R-1-1-11位定义的整数型变量必须明确定义是有符号还是无符号


违背示例中所展示的定义方式,原则上来说是没有什么问题的,编译器并不会显示这是一个错误。但是为了明确表达这个数有没有负的可能性,所以说一定要在前面标识出,这个数是整型的,是带符号的,还是不带符号的。这是一个强制性要求,在程序中大多数情况不会出错,只有在极少数的情况下会出错。所以说,一般的情况下还是要按照这种规则定义一下。


R-1-1-12位定义的变量必须是同长度的类型且定义位禁止跨越类型的长度



比如说像违背示例中,定义了很多的串。不能跨越类型也就是说,一个定义不能由两个串(单位)组成。与此同时,不能定义一个位变量既在第一个八位当中,同时在其它八位中也含有它的一些位,也就是说不能跨一个字符。
相关推荐白盒测试——C/C++编程规范(4)       白盒测试——C/C++编程规范(1)