初始化switch语句中的变量(int32)
这个问题在这里已经有了答案:
尝试添加{}
:
default:
{
int32 x = 1;
doSomething(x);
break;
}
根据标准:
可以将其转换为块,但不能绕过具有初始化的声明。 从自动存储持续时间不在范围的变量点到其范围内的点跳转91
的程序不合格,除非....
void f() {
// ...
goto lx; // ill-formed: jump into scope of a
// ...
ly:
X a = 1;
// ...
lx:
goto ly; // OK, jump implies destructor
// call for a followed by construction
// again immediately following label ly
}
91)
从switch
语句转换为case
标签被认为是这方面的一个跳跃。
上一篇: Initializing variables (int32) inside switch statement
下一篇: C if vs switch