【发布时间】:2011-06-28 12:34:09
【问题描述】:
可能重复:
Is there a performance difference between i++ and ++i in C++?
我明白:
i++;
应该接受比
更多的指令++i;
因为它会生成一个您不需要使用的中间结果,所以人们将“++i”放在对中间结果没有用处的代码行上。
但是,编译器非常聪明,它们可以判断结果是否正在使用。他们可以说出各种各样的事情。但它们不是魔法
所以我很好奇 - 在现代编译器中,选择一种方式而不是另一种方式实际上很重要,还是它会简单地编译成相同的机器代码?
【问题讨论】:
-
这取决于
i是什么...请记住,在C++ 中,++两个运算符都可以重载。 -
你总是可以使用 i++ 编译一个程序,然后除了使用 ++i 之外的同一个程序,看看生成的程序集是否相同。
-
@Jake:这只有在你已经知道汇编的情况下才有效。
标签: c++ c compiler-construction