关于避免头文件的重复引用
#ifdef 、和 #ifndef 测试某个宏是否被定义,经常用于避免头文件的重复引用。
头文件的重复引用往往是由于包含嵌套造成的,比如 func.cpp文件包含如下头文件:
//func.cpp文件中
#include "A.h"
#include "B.h"
而 A.h中包含了 B.h:
//A.h文件中
#include "B.h"
这意味着在 func.cpp文件对应的编译单元中,头文件 B.h被引用了两次,这就是重复包含,重复包含带来的问题便是重复定义。而对普通变量和普通函数来说,声明可以有多次,而定义只能有一次。