16

查看一些第 3 方 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 中不存在中断的行为。

4

2 回答 2

14
于 2013-06-19T13:20:36.357 回答
3
于 2013-06-19T13:22:48.967 回答