头文件在编译的时候,只是简单的展开,当项目大的时候,很容易发生以下情况:
test.h
test1.h---include test.h
test2.h---include test1.h, test.h
这样,test2.h里面就把test.h展开了两次。所以要用头文件卫士。头文件卫士是防止一个文件内包含多次
全局变量:
test.h 文件中定义了全局变量 int g_int;
test1.cpp中包含test.h
main.cpp中包含test.h
则会报int g_int重定义错误,因为在展开头文件的时候,test1.cpp中包含了int g_int; main.cpp中也包含了int g_int, 重定义了。
所以用全局变量的时候,一定要定义在cpp中,在别的文件要用的时候,extern int g_int.