我明白了:
i++;
应该接受比
更多的指示++i;
因为它生成了您不需要使用的中间结果,所以人们将“++i”放在对中间结果没有用处的代码行上。
但是,编译器非常聪明,它们可以判断结果是否正在使用。 他们可以讲述各种各样的事情。 但它们并不是魔法
所以我很好奇 - 在现代编译器上选择一种方式而不是另一种方式实际上很重要,还是会简单地编译为相同的机器代码?
在
int
上使用它并不重要。然而,当使用迭代器或其他重载的对象时,它可能仍然会产生影响。operator++
)有时可能会慢一点。
var ++
定义的变量可以是单独定义
i
的前缀和后缀版本的类型,这使得编译器无法删除其中的副本一般情况。因此,即使不使用副本,编译器也无法删除它。为了保持一致性,我将使用前缀形式,除非您必须使用后缀形式。 (尽管我认为后缀形式“更漂亮”)
operator++