“identifier”的初始化被“case”标签跳过
可以在 switch
语句中跳过 identifier
的初始化。 除非声明包含在块中,否则不能跳过带有初始值设定项的声明。 (除非在块中声明,否则变量在 switch
语句结束之前都在范围内。)
以下示例生成 C2360:
// C2360.cpp
int main() {
int x = 0;
switch ( x ) {
case 0 :
int i = 1;
{ int j = 1; }
case 1 : // C2360
int k = 1;
}
}
可能的解决方法:
// C2360b.cpp
int main() {
int x = 0;
switch ( x ) {
case 0 :
{ int j = 1; int i = 1;}
case 1 :
int k = 1;
}
}