次のようなコードがあります:
#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;
}
プログラムは何も印刷しません。 さえも印刷しません。 にタイプミスがあるNONE
ことがわかりました。なぜこの構文エラーがコンパイラによって検出されないのかを知りたいです。default
defalut
ベストアンサー1
defalut
は、 を使用してジャンプできるプログラム内の単なるラベルですgoto
。キーワードを強調表示するエディターがあれば、このエラーを見つけやすくなります。
また、プログラムに論理エラーがある可能性もあることに注意してください。文字は'1'
と同じではなく1
、 および と同じ'2'
です2
。