使用逗号来防止需要支撑对

Del*_*ani 2 c coding-style

有时,当我有一个多案例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)

Sea*_*ean 12

这确实是一种使用大多数类C语言的语法特征的聪明方法.

就个人而言,我尽量留在最明确地当我的代码,所以我一直有{}我的所有的if语句.它可以节省时间,但我更喜欢清晰:它不会加速减慢代码执行速度.


Eri*_*ven 8

我投票反对它有几个原因:

  • 很难立即看到,有一个以上的任务.
  • 我赞成总是使用括号,因为有时可以方便地返回,例如在调试期间,并添加也在该块中执行的代码.
  • 它并没有真正节省很多.编译器将吐出相同的代码.它不会为您节省任何明显的编译时间.分发文件时,它不会显着更好地压缩.


Jon*_*ler 5

  • 它不会节省超过几分钟的打字时间.

  • 如果你真的需要在屏幕上节省太多空间,你需要一个更大的屏幕(或者你应该运行一个更大的终端窗口).

  • 它对生成的目标代码没有任何影响.因此,它对运行时没有影响.

  • 在调试器中逐步执行逗号表达式的组件语句更加困难.

我认为更容易阅读冒号分隔(因此'支撑')代码,而不是更难以键入支撑版本.(经过很长一段时间,我一直用C语言编写并使用大括号,我不得不考虑使用逗号表示法.)