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

解决方法也很简单,添加头文件保护符就行:
#ifndef tmp_H
#define tmp_H
/*代码在这里面写,定义啥的*/
#endif tmp_H
博客探讨了在编程中将定义语句放入头文件可能导致的重定义问题,特别是在多个文件引用同一头文件时。C2084和C2374错误代码提示了这个问题。解决方法是使用头文件保护符(#ifndef/#define/#endif)以防止重复定义。建议头文件只包含声明,全局变量需用extern关键字,并且定义应放在实现文件中。

643

被折叠的 条评论
为什么被折叠?



