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

白盒测试CC编程规范7

本系列文章将带大家一起解析一下GJB-标准规则,其中一共有条强制性规则。GJB-强制性规则是按类分的,一共有13类,前面的文章已经讲过一部分,本文继续往下进行。

R-1-1-20用于数值计算的字符型(短型)变量必须明确定义是有符号还是无符号

在示例中,char是一个标准的类型定义,但是在我们的GJB-规则中规定。不允许char这种类型,只能有unsigned的char或者signed的char。这样可以帮助大家通俗地理解char这个类型是存正数或者存正负数。

R-1-1-21禁止在#include语句中使用绝对路径

这个一般老的程序员不会犯这种错误,新程序员挺容易犯这种错误的,在写路径的时候就直接指明了是什么目录,就像违背示例中展示的那样,实际上是不允许的。像遵循示例中那样写,好处是什么呢?像违背示例,比如说你的程序,在C盘上运行,可以寻找C盘的目录,如果在D盘上运行,它仍然要找C盘的目录。而遵循示例,会去找当前目录,也就是说我在哪运行就找哪个目录下的东西。所以,考虑到可移植性、可运行性等,禁止用绝对路径来表示。

R-1-1-22禁止头文件重复包含

像违背示例中展示的例子,对文件1做了定义,在文件2中包含了文件1,在实际用的时候,即包含了文件1,也包含了文件2,这样就是重复包含了。这种重复包含往往不容易发现,那怎么办呢?

对于头文件定义.h文件的写法有一个通常的写法,像遵循示例中展示的那样,如果没有定义头文件,我就把头文件定义一下,把内容写进去,在最后用个#endif。文件2中既包含了文件1,又包含了文件2,当我遇到文件2的时候,对它进行解析,发现文件1已经被定义了,直接就到最后了,就不会出现重复包含。

如果大家在头文件中定义的是一些变量,大家会发现在编译器中,违背示例那样是通不过了,如果没有定义变量,只是定了一些宏,那是可以通过的。




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

  • 上一篇文章:
  •   
  • 下一篇文章: