一个头文件中会包含另外一些头文件和函数,只要注意层次问题一般不会说函数或结构体重复定义,但如果想在头文件中定义全局变量就会出问题了,因为每个c或者cpp文件都会找自己的变量是从哪里定义的,链接器会寻找c或cpp文件中包含的头文件和头文件中包含的头文件,不像普通函数和结构体定义的那样,声明即可变量可能会报很多错。
所以全局变量最好定义在c或者cpp文件中,然后在一个头文件中用extern声明之,这样就可以使用全局变量了。
如:
c文件
int a;
h文件
extern int a;
如果在h中定义
int a;
然后好多头文件中包含和被包含,就会出现重复定义的错误