最佳答案
我的问题是关于我在这个主题中提到的那行代码,我可以在生产代码的很多地方看到它。
总体代码如下:
if (0) {
// Empty braces
} else if (some_fn_call()) {
// actual code
} else if (some_other_fn_call()) {
// another actual code
...
} else {
// default case
}
其他分支与我的问题无关。我想知道把 if (0)
放在这里是什么意思。大括号是空的,所以我不认为它应该注释一些代码块。它是强制编译器进行某些优化,还是意图不同?
我试图在 SO 和互联网上搜索这个明确的案例,但是没有成功。关于 JavaScript 也有类似的问题,但不是 C。还有一个问题,当一个零被赋予一个“如果”条件时会发生什么?,但是它讨论了对变量的零赋值,而不是“ if (0)”用法本身。