Я только что обнаружил следующий раздел в некотором коде, который я поддерживаю:
switch (m) {
case 62: { // opening
// some declarations
// do some stuff
break;
case 63:
// do some other stuff
break;
} // closing
default:
// default stuff
break;
}
Открытие блока предназначено для объявления некоторых локальных переменных, но закрывающая скобка ошибочно размещается и возникает после case 63
.
Я никогда не замечал этого в течение нескольких месяцев, поскольку он хорошо компилируется в Visual Studio 2010. Я пробовал отлаживать его, и оба случая работают нормально.
Как это может быть? Является ли этот правильный синтаксис Си?