【发布时间】:2018-06-07 08:26:54
【问题描述】:
在CodeForces 等网站上解决问题时,我经常使用逗号运算符(C 语言)。而且我注意到我的解决方案似乎比大多数其他解决方案需要更多的执行时间,尽管没有太大区别。
所以我的问题是逗号运算符是否会增加 CPU 的开销?就像不需要评估它的两个操作数一样。将它们分成两个语句会更快吗?还是编译器会优化它?
【问题讨论】:
-
不太可能。但同样,唯一确定的方法是检查装配和/或轮廓。语言本身没有关于操作“速度”的先天概念。
-
I use the comma operator (in C) very often不要。编写可读的代码。 -
如果存在差异,那么它很可能是基于编译器、其设置和运行平台的变量。无论如何,我同意@DeiDei 的观点,即编写可读代码应该比微优化具有更高的优先级。如果您想要优化,请选择好的算法。
-
@Dragonthougts 为什么你认为编译器不太可能优化它。我的意思是,如果从不使用逗号运算符的返回值,我猜这将是一个很好的优化。然而,正如 DeiDei 所说,我开始相信可读代码在竞争性编码中并不重要。
-
@OmarAlhelo 我指的不是竞争性编码,而是一般的编码。一旦你摆脱了竞争,你把坏习惯带到了现实世界的项目中,你很可能会受苦。另一方面,我没有看到“丑陋”的代码比可读代码表现更好,尤其是逗号运算符。就像 Dragonthoughts 说的那样,好的算法会带来性能,而不是逗号。
标签: c comma-operator