C 中变量的多重定义
遇到“multipleDefinitions for wat”的编译时错误可能会令人困惑。让我们分析提供的源代码并找出问题。
在您的代码中,您有四个文件:FileA.cpp、FileA.h、FileB.cpp 和 FileB.h。编译时,编译器会检测到名为 wat 的变量的多个定义。
经检查,您已在 FileA.h 和 FileB.h 中定义了变量 wat:
// FileA.h void hello(); #endif /* FILEA_H_ */ // FileB.h int wat; void world(); #endif /* FILEB_H_ */
当您代码编译时,头文件多次包含在编译单元中,导致变量wat重复定义。要解决此问题,您需要将 wat 的声明与其定义分开。
解决方案:
extern int wat;
这通知编译器 wat 将被定义
int wat = 0;
现在,编译时,编译器会正确识别出在 FileB.h 中声明并定义的 wat在FileB.cpp中,解决多重定义错误。
以上是为什么我在 C 中遇到''wat'的多重定义”编译时错误?的详细内容。更多信息请关注PHP中文网其他相关文章!