tengo este codigo:
#include<stdio.h>
int main()
{
int a=10;
switch(a)
{
case '1':
printf("ONE\n");
break;
case '2':
printf("TWO\n");
break;
defalut:
printf("NONE\n");
}
return 0;
}
El programa no imprime nada, ni siquiera NONE
. me di cuenta de que default
tenía un error tipográfico defalut
!
Quiero saber por qué el compilador no detecta este error de sintaxis.
este es un gran ejemplo de por qué USTEDES NO UTILIZAN GOTO CHICOS USTEDES SE ESTÁN PREPARANDO PARA EL FRACASO.
– Hans Z.
3 de julio de 2012 a las 16:40
@Hans – OP no usó GOTO. Desafortunadamente, es parte del lenguaje y el compilador no notó que la etiqueta no se usó.
–Ted Hopp
3 de julio de 2012 a las 16:41
No estoy diciendo que OP usó GOTO, solo estoy diciendo cualquier construcción donde
for:
,defalut:
,if:
,void:
,do:
ythis:
son válidos hará que su programación sea innecesariamente difícil de depurar.– Hans Z.
3 de julio de 2012 a las 16:43
¿Habilitó todas las advertencias en su compilador?
– KerrekSB
3 de julio de 2012 a las 16:45
@KerrekSB – ¡Genial! la advertencia aparece cuando lo compilo con el
-Wall
cambiar.– loco
3 de julio de 2012 a las 19:01