在解决 CodeForces 等网站上的问题时,我经常使用逗号运算符(在C中)。而且我一直注意到我的解决方案似乎比大多数其他解决方案需要更多的执行时间,尽管没有太大区别。
所以我的问题是逗号运算符是否会在CPU上增加更多开销?就像是否需要评估其两个操作数一样。在两个陈述中将它们分开会更快吗?或者编译器会优化它吗?
答案 0 :(得分:0)
没有。逗号运算符不会使代码变慢。
尽管如此,在大多数代码中,逗号运算符很少见。几乎是你需要它的唯一时间是你在两个变量上运行for
循环,如
for(i = 0, j = n; i < j; i++, j--)
(我相信有类C语言只允许逗号运算符在for
循环的第一个和第三个表达式中,在其他地方禁止它。)
在您使用逗号运算符的任何其他时间,它通常表示您正在做一些“聪明”但不必要的事情,这主要是为了使您的代码更容易混淆或更难阅读。
(尽管如此,大多数C程序中的大多数逗号都不是逗号运算符也是如此。在函数调用中分隔参数的逗号不是逗号运算符,也不是逗号分隔多个声明,如{{ 1}}。)