全局变量被修改后又还原为初始值的诡异有关问题
全局变量被修改后又还原为初始值的诡异问题比如有一个A.cpp和A.hcpp中顶一个一个全局bool和获取设置的函
全局变量被修改后又还原为初始值的诡异问题
比如有一个A.cpp和A.h;cpp中顶一个一个全局bool和获取设置的函数
bool g_Flag = false;
bool getbFlag()
{
return g_Flag;
}
void setFlag(bool b)
{
g_Flag = b;
}
A.h中的内容是:
bool getFlag();
void steFlag(bool b);
我在B.cpp中包含了A.h
然后在某个函数中setFlag(true);,随后我就调用getFlag()发现是返回true的;可是我在C.cpp中在调用时发现getFlag()返回了false,可以肯定的是其他再没有修改这个变量的地方,而且C的调用在B的调用之后,这样诡异的问题,可能的原因是什么呢?我也完全编译了一次程序,折腾大半天就是不行。还有如果我初始化为true,那么C中调用时就返回true了。
[解决办法]
而且C的调用在B的调用之后
这是你从代码看的吧。能不能加上打印输出,证明确实是先调了B才调C
[解决办法]