【发布时间】:2016-01-31 08:42:42
【问题描述】:
我想知道,对于 unsigned int a;,while(a-- != 0) 和 while(a-- > 0) 是否需要相同的时间和数量的指令来执行。
哪个更好用?
【问题讨论】:
-
编译和反汇编并调查输出。 C标准没有说明指令的数量,所以取决于编译器等。
-
你也可以使用
while(a--) -
最好使用arrow operator:
while (a --> 0)... -
@AnT,问题指定了 uint。
-
...但是,是的。理论上可能取决于编译器和指令集,但在实践中,两者都不会更快(并且专注于这种微优化的人忽略了他们应该关注的代码结构区域改为)。