私が維持しているいくつかのコードで、次のセクションを発見しました。
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 で問題なくコンパイルできるので、何ヶ月もこれに気付きませんでした。デバッグを試みたところ、どちらの場合も問題なく動作しました。
どうしてですか?これは正しい C 構文ですか?