【发布时间】:2019-07-17 20:07:14
【问题描述】:
这样的代码是错误的还是正常的:
void fun()
{
if ( CONDITION )
{
static MyClass myclass;
...
}
...
}
也就是说,静态变量可以在局部范围内声明吗?
【问题讨论】:
-
是的,局部作用域中的静态变量在第一次进入作用域时被初始化,但直到程序退出才被销毁。
-
是的。所有带有静态 linkage 的局部变量的工作方式都是一样的,不管它们嵌套了多少层。