2
我知道很多关于这个主题的问题stackoverflow,但我没有找到答案。C++在switch语句中定义变量 - 用/不用初始化定义
struct message
{
int myint;
};
int main(void)
{
switch(1)
{
case 0:
break;
case 1:
int i; // this is fine, but int i = 10; is compile error
break;
default:
break;
}
return 0;
}
从逻辑上讲,为什么定义变量并用某个值初始化它与为'case labels'定义变量不同?
在右边的相关章节的第二个问题:http://stackoverflow.com/questions/92396/why-cant-variables-be-declare-in-a-switch-statement?rq = 1 – chris
@chris,有趣的帖子。顺便说一句,它回答了为什么简单的'我我;'工程?我读了前几个高票答案,但找不到明确的解释。 – iammilind
@iammilind,是的,因为没有初始化被跳过。 [这个答案](http://stackoverflow.com/a/92730/962089)更进一步。 – chris