Рассмотрение некоторых сторонних C-кода я натолкнулся на что-то вроде:
switch (state) {
case 0:
if (c=='A') { // open brace
// code...
break; // brace not closed!
case 1:
// code...
break;
} // close brace!
case 2:
// code...
break;
}
Что в коде, который я просматривал, оказалось просто опечаткой, но я был удивлен, что он скомпилирован с ошибкой.
Почему это действительное C?
Каков эффект на выполнение этого кода по сравнению с закрытием скобки в ожидаемом месте?
Есть ли случаи, когда это может быть полезно?
Изменить: В примере, на котором я смотрел, присутствовали все перерывы (как указано выше), но ответ также может включать в себя поведение, если разрыв отсутствует в случае 0 или 1.