有时,当我有一个多案例if,或者一个非常简单的for,只有两个语句时,我会放弃大括号,而不是使用逗号.这是对该功能的糟糕利用吗?它是丑陋和糟糕的形式吗?或者它是一种节省时间和空间的可接受方式?
例如:
if (something)
b = y, c = z--;
Run Code Online (Sandbox Code Playgroud)
代替:
if (something) {
b = y;
c = z--;
}
Run Code Online (Sandbox Code Playgroud) 我尝试了几种变体
main() return;
Run Code Online (Sandbox Code Playgroud)
要么
main() if();
Run Code Online (Sandbox Code Playgroud)
并获得了不同的错误,其中最奇特的是
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start': (.text+0x18): undefined reference to `main' collect2: ld returned 1 exit status
虽然程序只需要一个语句并不常见,但为什么main()要求使用大括号?
有人可以解释为什么在编译int main()时错误是如此奇特;?