【发布时间】:2018-09-08 18:47:22
【问题描述】:
如标题 - 程序如何知道 foo 在第二次调用函数时已经初始化:
int getFoo()
{
static int foo = 30;
return foo;
}
int main()
{
getFoo();
getFoo();
}
我想知道,程序是否存储了一些关于哪个静态变量已经初始化的附加信息。
编辑:
我在这里找到了答案:
Why does initialization of local static objects use hidden guard flags?
就像我猜的一样——大多数编译器都存储了额外的“保护变量”。
【问题讨论】:
-
您是否已经考虑研究发出的汇编代码?
标签: c++ initialization thread-safety storage-duration