所在的位置: C++ >> C++发展 >> 白盒测试CC编程规范1

白盒测试CC编程规范1

今天起的系列文章将带大家一起解析一下GJB-标准规则,其中一共有条强制性规则。GJB-强制性规则是按类分的,一共有13类,有指针类的、书写上的、声明上的......

声明定义类

声明定义类一共有23条,都是我们在日常的工作中写程序的时候容易出的一些瑕疵,不能说是错误,但是在规则里是不被允许的。很多人可能会说,它并不影响程序的实际运行,这样理解是片面的。所有这些规则都是航天型号软件在整个发展过程中出现的一些问题,经过总结归纳而来的。

R-1-1-1:禁止通过宏定义改变关键字和基本类型含义

大家用过C语言的都知道,像字符类型定义等都被称为关键字,这些关键字通常不能把它当作一个基本类型,重新定义。

R-1-1-2:禁止将其他标识宏定义为关键字和基本类型

比如说把一个int64定义成长整型,这就是违反规则的,标准的定义应该是把一个长整型定义成int64。

R-1-1-3:用typedef自定义的类型禁止被重新定义

比如说我们把一个int的类型定义成了mytype,就不能再把一个float型或其他类型定义成mytype了。

R-1-1-4:禁止重新定义C或C++关键字

本来在标准的C语言中是不支持重新定义的,但是在C++语言中支持重定义。实际上在大家在编写程序的过程中会发现,在C++中重新定义关键字是没有任何问题的,只不过咱们的GJB-规定不允许这样定义。R-1-1-5:禁止#define被重复定义

用#define定义一个宏,然后再定义这个宏为别的,这样就是重复定义,原则上是不允许的。在C语言以及C++语言现在的各个编译器中这样定义并不会出错,但是会出现一个问题,当你用到这个被定义的宏的时候,就会困惑,这个宏到底用的是哪一次定义的值?原则上是离它最近的那次定义的值,但是分不清。所以想重新定义这个宏的话,要用一个undef取消定义后再重新定义。




转载请注明:http://www.aierlanlan.com/tzrz/4618.html