我想做的就是在头文件中定义一个变量,并在两个不同的cpp文件中使用它,而无需在每次包含该头文件时都重新定义该变量。
这是我尝试的方法:
变量
#ifndef VARIABLES_H // header guards
#define VARIABLES_H
static bool bShouldRegister;
#endif
(我也尝试过extern,但没有任何改变)
在一个cpp文件中,我给它一个值
::bShouldRegister = true
或bShouldRegister = true;
在我的另一个cpp文件中,我通过创建一个线程来检查它的值并在循环中检查它的值(是的,我的线程函数运行良好)
while (true)
{
if (::bShouldRegister) // Or if (bShouldRegister)
{
MessageBox(NULL,"Value Changed","Done",MB_OK|MB_ICONINFORMATION);
}
Sleep(100);
}
是的,该MessageBox永远不会出现(bShouldRegister永远不会变为true:/)
最佳答案
您必须使用extern
,否则,每个翻译单元中的bShouldRegister
变量都可能具有不同的值。
将其放在头文件(.h)中:
extern bool bShouldRegister;
将其放入实现文件(.cpp)之一:bool bShouldRegister;
关于c++ - C++全局变量声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19929681/