2011-11-10 2 views
3

가능한 중복 :
Is there a performance difference between i++ and ++i in C++?연산자 x ++; 및 ++ x; int.What 빠른 무엇입니까? 그리고 왜?

그들은 ++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

이것은 자주 언급 된 참고 문헌 이외에 여러 번 전에 질문을 받았다. http://stackoverflow.com/questions/2020184/preincrement-faster-than-postincrement-in-c-true-if-yes-why-is-it and http : //stackoverflow.com/questions/5223950/stl-iterators-prefix-increment-faster. – hlovdal

답변

5

++i 최대한 빨리 i++로 definitiely이지만 빠를 수 있습니다.
이유는 구현입니다. i++ 구현을 구현하기 위해

++i에 대한 구현과 달리 i의 임시 복사본을 생성 할 필요가있다.

하지만 스마트 컴파일러는이 임시 생성을 최적화 할 수 있으며, POD 유형의 경우에도 마찬가지입니다.

1

이 표현식에 대해 더 빠른 코드를 생성하는 경우 컴파일러와 상황에 따라 다릅니다.

관련 문제