gpt4 book ai didi

c++ - 全局 bool 变量在全局销毁期间是否可靠?

转载 作者:行者123 更新时间:2023-11-30 01:37:01 27 4
gpt4 key购买 nike

如果我有一个简单的数据类型作为全局变量——比如 bool 标志;具体来说,没有析构函数的东西——即使在全局销毁期间,该变量是否仍然可靠?还是不能保证?

例如,以下代码的结果是否定义明确?

Flag.h:

void SetFlagState(bool flag);
bool GetFlagState();

Flag.cpp:

#include <Flag.h>
namespace { // local declarations
bool g_flag;
}

void SetFlagState(bool flag)
{
g_flag = flag;
}
bool GetFlagState()
{
return g_flag;
}

主要:

#include <iostream>
#include <Flag.h>

class FlagChecker
{
public:
~FlagChecker()
{
std::cout << "Flag value: " << GetFlagState() << std::endl;
}
};
FlagChecker g_FlagChecker; // global instance; dtor will be called on exit

int main()
{
SetFlagState(true);
}

最佳答案

是的,这是安全的。存储的生命周期就是程序的持续时间。该生命周期中的主要问题是初始化时刻(通过您的 g_Flagchecker)。由于内置类型没有“取消初始化”这样的东西,所以只要您的进程中有代码在执行,您的 g_flag 就会保持有效。

关于c++ - 全局 bool 变量在全局销毁期间是否可靠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50599965/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com