This question already has answers here:
Why does initialization of local static objects use hidden guard flags?

(2个答案)


2年前关闭。




如标题中所示-程序如何知道,第二次调用函数时foo已经初始化:
int getFoo()
{
    static int foo = 30;
    return foo;
}
int main()
{
    getFoo();
    getFoo();
}

我想知道,该程序是否存储一些有关已初始化哪个静态变量的信息。

编辑:
我在这里找到了答案:
Why does initialization of local static objects use hidden guard flags?
就像我猜到的那样-大多数编译器存储其他“保护变量”。

最佳答案

看看[stmt.dcl]/4:

10-07 20:17