【发布时间】:2014-07-07 23:38:19
【问题描述】:
我在 C(和许多其他语言)中有这个习惯,而不是 foo <= bar,我会使用 foo < bar + 1,甚至不知道这是从哪里来的......
这本身很糟糕,还是只是不标准?我的意思是从编码和后来修改代码的上下文来看...我假设任何好的编译器都可以编译它们。
【问题讨论】:
-
这在各种方面都被破坏了,尤其是在边缘情况、有符号/无符号和(显然)有浮点的情况下。
-
重载运算符的行为可能会有所不同?
-
还有其他人需要处理该代码吗?帮他们一个忙,不要那样做。
-
似乎没有其他人提到它,所以我会 - 它也更慢。假设 bar 不是一个常数,程序将必须检索 bar 的值,将其加一,然后检查 foo 是否小于这个总和。另一方面,小于或等于运算符具有可以执行检查的单个 CPU 指令。它还节省了寄存器的使用,这可以再次提高编程速度,因为现在有一个额外的寄存器可用。您是否在重要的地方编写任何程序是另一回事。但事实仍然存在 - 它更慢。
-
谢谢。即使我不编写任何重要的东西,速度确实很有趣。看看我最近的另一个问题stackoverflow.com/questions/24620593/… ...这也是关于速度
标签: c syntax convention