我在全局变量的使用上遇到了一些问题。我正在使用Visual Studio 2008和标准C++。
我有两个项目,一个是静态库,另一个是使用该库的测试程序。我在global.h中定义了一个全局变量,如下:
#ifndef GLOBAL_H
#define GLOBAL_H
#include <string>
extern std::string globalWord;
#endif // GLOBAL_H!
我有一个global.cpp文件,其中我正在初始化这个变量。这个变量在我的库项目中被使用。我从测试项目中为这个变量设置了一个值,但是这个值没有反映在库项目中。
我已经进行了调试,并且在测试项目中显示了新值,但是当控制权到达库项目时,这个变量的值为空。所以这个全局变量的作用域只限于它所属的项目吗?
还是有更好的方法?我不想修改我的函数或构造函数参数来传递这个值。
任何帮助都将是伟大的。
编辑:
以下是global.cpp中声明这个变量的方式:
#include <string>
#include "../global.h"
std::string globalWord = "";
这是我在我的库中使用它的方式。
#include "../global.h"
string text = globalWord;
谢谢