我想做的就是在头文件中定义一个变量,并在两个不同的cpp文件中使用它,而无需在每次包含该头文件时都重新定义该变量。
这是我尝试的方法:
变量

#ifndef VARIABLES_H // header guards
#define VARIABLES_H

static bool bShouldRegister;

#endif

(我也尝试过extern,但没有任何改变)

在一个cpp文件中,我给它一个值::bShouldRegister = truebShouldRegister = 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/

10-10 02:20