定义语句放在头文件可能会产生重定义问题,所以尽量定义语句不要放在头文件中。
多个不同文件引用同一个头文件,或者同一个文件多次引用一个头文件,就可能会产生重定义问题。因为每次包含某个头文件的时候,相当于将该文件下的局部变量或者内联函数进行了全局化。因此,多次包含同一个头文件就可能会产生重定义问题;
出现问题的代码编号可能有C2084,函数" "已有主体以及C2374,重定义;多次初始化;如果需要全局引用的变量(其他文件也使用),则必须添加extern关键字,且头文字只能放声明,不能有定义;
解决方法也很简单,添加头文件保护符就行:
#ifndef tmp_H
#define tmp_H
/*代码在这里面写,定义啥的*/
#endif tmp_H