可能性の重複:How can a variable be used when its definition is bypassed?誰もこのCプログラムの出力を説明できますか?
#include<stdio.h>
int main()
{
int a=1;
switch(a)
{ int b=20;
case 1: printf("b is %d\n",b);
break;
default:printf("%d\n",b);
break;
}
return 0;
}
Why can't variables be declared in a switch statement?
はGCC 4.6.3に走った、出力はここで何が起こっているではない20?
しかし、変数bは20と宣言されています。コンパイラは、変数bがどのくらいのスペースをとり、そこに格納するかを知っています。なぜその動作は未定義ですか? – Anon
@Anon:ラベルの一部ではありません。 –
、ありがとう、それを得た。 – Anon