可能重复:
Why can't variables be declared in a switch statement?
我在C中看到,在跳转语句中可以跳过变量的初始化,如下例所示:
/* valid in C but not C++ */
int main()
{
switch (1)
{
case 0:
int foo = 0;
break;
case 1:
++foo;
}
return 0;
}
但是当我尝试用Comeau编译器编译它时会出现错误:
“ComeauTest.c”,第8行:错误:声明不能有标签 int foo = 0; ^
“ComeauTest.c”,第5行:警告:转移控制旁路 初始化: 变量“foo”(在第8行声明) 开关(1) ^