Mögliche Duplizieren:
Why can't variables be declared in a switch statement?
How can a variable be used when its definition is bypassed?Kann jemand die Ausgabe dieses C-Programms erklären?
#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;
}
lief auf gcc 4.6.3, Ausgabe nicht 20. Was ist hier los?
Aber Variable b wird zu 20 deklariert, Compiler weiß, wie viel Platz Variable b nehmen wird und was dort zu speichern ist. Warum ist das Verhalten dann undefiniert? – Anon
@Anon: Es ist nicht Teil eines Labels. –
hab es, danke. – Anon