C++ int比较效率

Shi*_*des -1 c++ comparison performance

以下代码片段的性能是否有任何差异?哪一个表现最好,为什么?

int i = 1000000000;

while(i != 0) { i--; }
Run Code Online (Sandbox Code Playgroud)

要么

int i = 1000000000;

while(i) { i--; } 
Run Code Online (Sandbox Code Playgroud)

要么

int i = 1000000000;

while(i > 0) { i--; }
Run Code Online (Sandbox Code Playgroud)

我看到很多人使用第一个例子,并想知道为什么.更容易阅读?

Jes*_*uhl 6

它们在这种情况下都是相同的,任何体面的编译器都会为这三个生成相同的代码.在任何情况下,尝试手动优化这样的琐碎事物(整数比较)是没有意义的.你的编译器会弄清楚它并在代码生成过程中做得比你想象的要好得多.所以,只需停止尝试,而只是编写最可读的代码,然后信任编译器 - 无论如何,这些都不会产生任何性能差异.