1

作为我之前在 stackoverflow 中的问题的延续: Getting LINK error : Extern in C++。如何访问在另一个文件中的文件 A.CPP 中修改的变量的值 在我的 C++ 代码中的文件 B.CPP 我想在文件“B”中使用变量“VarX”,该文件实际上在另一个文件中修改文件“A”。所以我看了一下@以下链接并使用了外部概念。

如何使用 extern 在源文件之间共享变量?

错误 LNK2001:无法解析的外部符号“unsigned int VarX”(?VarX@@3IA)

我的情况如下:

File1.h
extern unsigned int VarX;

File2.cpp
#include File1.h
VarX = 101;

File3.cpp
#include File1.h
unsigned int temp = VarX;

IMP 注意:在头文件 File1.h 中,除了 Extern 定义之外,还有许多其他结构定义和许多其他定义。

有人可以帮助我吗?我该如何读取在另一个文件 File3.cpp 中的 File2.cpp 中修改的 VarX 的值。

4

2 回答 2

2

您应该拥有具有以下内容的 File1.cpp:

unsigned int VarX = 0;
于 2012-04-24T13:54:01.627 回答
2

您必须VarX在全局范围内定义,我假设您现在没有这样做,否则它甚至不会编译:

//File2.cpp
#include "File1.h"
unsigned int VarX = 101;  //this has to be outside any code block or namespace
                          //or class... 
于 2012-04-24T13:54:15.240 回答