【发布时间】:2017-07-05 13:30:46
【问题描述】:
以下代码在我的 gcc 5.4.0 上编译,不会产生任何警告并且工作正常:
if (a == 0) {
puts("0");
} else switch (a) {
case 1: puts("1"); break;
case 2: puts("2"); break;
default: puts("default"); break;
}
if ... else switch ... 语句正确吗?
【问题讨论】:
-
正确,是的。格式很糟糕,是的。
-
C++ 中的类似问题:*.com/questions/35985592/…
-
相关趣事:C 语言实际上没有
else if语句。这是一个没有大括号的else语句,后跟另一个if语句。else if(a==b){ }是else /* new line */ { if(a==b){} }的无括号、奇怪的缩进版本。 -
@Lundin 没错。 IMO 许多书籍和教程建议
else if是一个声明,但实际上不是