Przełącz skrzynkę dziwnie
Przeglądając kod C innej firmy natknąłem się na coś takiego:
switch (state) {
case 0:
if (c=='A') { // open brace
// code...
break; // brace not closed!
case 1:
// code...
break;
} // close brace!
case 2:
// code...
break;
}
Który w kodzie, który recenzowałem, okazał się tylko literówką, ale byłem zaskoczony, że skompilował się bez błędu.
Dlaczego to ważne C?
Jaki jest wpływ na wykonanie tego kodu w porównaniu do zamknięcia klamry w oczekiwanym miejscu?
Czy jest jakiś przypadek, w którym mogłoby to być przydatne?
Edycja: W przykładzie, w którym spojrzałem, wszystkie przerwy były obecne (jak powyżej) - ale odpowiedź może również obejmować zachowanie, jeśli przerwa nie występuje w przypadku 0 lub 1.