我们总是能在读别人的代码时看到头文件里有#ifndef的字符,他到底是什么,又有什么用呢?
如果你有两个.cpp(C++)源文件,这两个.cpp文件都include 了同一个头文件,而在编译时,这两个C++源文件要编译成一个可运行文件,那么完蛋了,大量的声明冲突。如何避免这种悲剧的发生呢?
所以我们要用#ifndef来防止头文件被重复包含。
如何使用#ifndef呢?其实很简单呢,只要把你写的头文件外面加上如下的框架就行了。
#ifndef <标识>//千万要注意这一行是ifndef而不是ifdef,很多朋友反应都用错了
#define <标识>//一旦写成了ifdef那就真完蛋了,相当于头文件没写!
…
…
…
…
…
…
#endif
所谓标识,理论上是可以随便命名的,但为了保证每个头文件的标识唯一,我们一般都遵循如下规则给头文件起标识名:头文件字母全大写,而且要在前后全都加上下划线_,并且要把.也变成下划线-。
例如: stdio.h 标识为 -STDIO-H- stdlib.h 标识为 -STDLIB-H-
Line.h 标识为 -LINE-H-
还有啊,千万不要在头文件中定义变量!!!
如果你看到你的程序错误是因为“XX类型重定义”,那么你一定是忘记给头文件加这个了!