2011-11-10 11 views
3

可能性の重複:
Is there a performance difference between i++ and ++i in C++?演算子x ++; ++ x; int.Which高速ですか?なぜ?

彼らは++iが高速であることを言うが、誰も私にこれらの演算子のアセンブラコードを表示why.Can私は理解していませんか?

+0

ここをクリックしてください:http://stackoverflow.com/questions/3346450/c-what-is-the-difference-between-i--i/3346729#3346729 – Azodious

+0

@Azodious:C#!= C++ – Piskvor

+0

前に何度も尋ねられている、参照されたalreadに加えてhttp://stackoverflow.com/questions/2020184/preincrement-faster-than-postincrement-in-c-tr​​ue-if-yes-why-is-itとhttp ://stackoverflow.com/questions/5223950/stl-iterators-prefix-increment-faster – hlovdal

答えて

5

++iは、確かにi++と同じくらい速いですが、と速いです。
理由は実装です。

i++を実装するには、++iの実装とは異なり、実装でiの一時コピーを生成する必要があります。

しかし、スマートコンパイラはこの一時的な生成を最適化することができますが、スマートコンパイラはPODタイプのためのものです。

1

この式のより高速なコードを生成する場合は、コンパイラと状況によって異なります。

関連する問題