サードパーティの 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でブレークがない場合の動作も回答に含まれる可能性があります。