++i 与 i++:在现代编译器上有什么区别吗? [重复]

问题描述 投票:0回答:4

可能重复:
C++ 中 i++ 和 ++i 之间有性能差异吗?

我明白了:

i++;

应该接受比

更多的指示
++i;

因为它生成了您不需要使用的中间结果,所以人们将“++i”放在对中间结果没有用处的代码行上。

但是,编译器非常聪明,它们可以判断结果是否正在使用。 他们可以讲述各种各样的事情。 但它们并不是魔法

所以我很好奇 - 在现代编译器上选择一种方式而不是另一种方式实际上很重要,还是会简单地编译为相同的机器代码?

c++ c optimization
4个回答
9
投票

int
上使用它并不重要。然而,当使用迭代器或其他重载的对象时,它可能仍然会产生影响。
    


2
投票
operator++

)有时可能会慢一点。

    


1
投票
var ++

定义的变量可以是单独定义

i
的前缀和后缀版本的类型,这使得编译器无法删除其中的副本一般情况。因此,即使不使用副本,编译器也无法删除它。

为了保持一致性,我将使用前缀形式,除非您必须使用后缀形式。 (尽管我认为后缀形式“更漂亮”)


1
投票

operator++

	
© www.soinside.com 2019 - 2024. All rights reserved.