在我的C ++代码中,我想在文件“B”中使用变量“VarX”,该文件实际上是在另一个文件“A”中修改的。 所以我看看@以下链接&使用了extern概念。
How do I use extern to share variables between source files?
错误LNK2005:已经定义了“unsigned int VarX”(?VarX @@ 3IA) ***。OBJ。
我的方案如下:
File1.h
extern unsigned int VarX;
File2.cpp
#include File1.h
unsigned int VarX = 101;
File3.cpp
#include File1.h
unsigned int temp = VarX;
IMP注意:在头文件File1.h中,除了Extern定义之外,还有许多其他结构定义以及许多其他定义。
有人可以帮助我。我如何读取另一个File File3.cpp中File2.cpp中修改的VarX的值。
答案 0 :(得分:1)
问题不是可访问性,而是多重定义。错误消息非常清楚,在您重新定义VarX
的代码中的某处。
常见原因可能是:
unsigned int VarX = 101;
或unsigned int VarX;
某处(在标头或实施文件中),没有extern
声明。#include "File2.cpp"
代码中的某个地方,导致它被多次编译。我的赌注是第二种可能性。