Я работал с оператором Switch, когда случайно написал следующий фрагмент кода (на gcc в C)
int a = 2;
switch(a)
{
default:
printf("Default\n");
case 1:
printf("One\n");
case2 :
printf("Two\n");
}
Вывод, который я получил:
По умолчанию
Один
Два
Я могу понять, как возник этот вывод, однако я не понимаю, почему это не выдает ошибку, я имею в виду, что я явно не 'нет метки регистра (в случае2), верно?Также я наблюдал тот же результат, если я, например, правильно указал «case2» как «casex».Принимая во внимание, что если я не добавлю метку в любом случае, она выдаст ошибку времени компиляции.
Любая помощь будет оценена, спасибо!