Cómo son las declaraciones que vienen antes de cualquier declaración etiquetada case
en un bloque switch-case
tratada. favor explicar el comportamiento de los siguientes programas¿Cómo funciona la instrucción switch?
prog1:
#include<stdio.h>
int main()
{
switch(1)
{
int i=0;
case 1:printf("%d",i);
}
getchar();
return 0;
}
de salida: Valor de basura.
prog2:
#include<stdio.h>
int main()
{
switch(1)
{
printf("Inside Switch");
case 1:printf("Case 1\n");
}
printf("Outside Switch");
getchar();
return 0;
}
Salida:
Caso 1
interruptor exterior.
Las declaraciones antes de una declaración etiquetada de caso parecen inalcanzables de acuerdo con el programa 2 pero entonces ¿por qué no obtengo un error para una variable no declarada i
en el primer programa (solo una advertencia).
Sería realmente útil si alguien pudiera explicar en detalle cómo se trata internamente la declaración switch
.
¿Es esta tarea? Suena como tarea. Si es así, agregue la etiqueta 'homework' y muestre su propio trabajo hasta el momento. –
@ T.J.Crowder Esto no es tarea. Me encontré con esto mientras tomaba el cuestionario C en dorado y tengo curiosidad por saberlo. – Bazooka
Una instrucción 'switch' es básicamente azúcar sintáctica para una tabla de salto con' goto's. –