Duplicar posible:
Why can't variables be declared in a switch statement?
How can a variable be used when its definition is bypassed?¿Alguien puede explicar el resultado de este programa en 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;
}
corrieron en gcc 4.6.3, salida no 20. ¿Qué está pasando aquí?
Pero la variable b se declara como 20, el compilador sabe cuánto espacio tomará la variable b y qué almacenar allí. ¿Por qué el comportamiento no está definido entonces? – Anon
@Anon: no es parte de una etiqueta. –
lo tengo, gracias. – Anon