2011-04-11 3 views
0

가능한 중복 :
Is there a performance difference between i++ and ++i in C++?어느 것이 더 빠른 증분 또는 사전 증가입니까?

안녕하세요, 나는 빨리 변수 ++ 또는 ++ 변수입니다 어느 전에 언젠가는 질문을 받았다? 나는 거의 혼란 스러웠다. 누군가가 더 빠르고 왜 저에게 말할 수 있습니까?

+1

확인 http://stackoverflow.com/questions/24901/is-there-a-performance-difference-between-i--i-in-c – RageD

+0

검색 버튼을 사용해보십시오. – Marlon

답변

1

전 증분이 더 빠를 것이라고 생각합니다. 증분을 올리면 그 증분이 증분되고 증서가 완료되는 반면 사후 증분은 상기 변수의 복사본을 좀 더 길게 유지해야합니다.

이것은 컴파일러에 따라 다르지만 일반적으로 달리 필요하지 않는 한 사전 증가를 사용합니다.

+0

좋은 컴파일러는 구문이 아닌 * 의미 *를 반영하는 코드를 생성합니다. 복사본을 유지해야하는 경우에는 해당 연산자가 사용되는 것과 관계없이 유지됩니다. 그리고 대부분의 경우에, 어떤 새끼 고양이도 지킬 필요가 없습니다. –

1

++ 답변입니다 나는 개인적으로 주어졌다. 후행 증가는 객체의 현재 상태의 사본을 생성하고, 객체를 증가시키고, 값에 따라 사본을 반환해야합니다 :

포스트 증가는 객체의 현재 상태 사본을 생성하고 값을 기준으로 사본을 반환해야합니다. 정수형의 경우 by-value 반환 값이 동일하고 복사가 거의 없음을 의미하므로이 값은 부적절합니다.

사전 증가는 단순히 증가하고 참조로 돌아옵니다.

+0

사실이 아닙니다. 사후 증가 이전의 값에 표현이 필요한 경우에만 "사본"이 작성됩니다. 이 경우 추가 비용은 ++ 증가 연산자의 결과가 아니라 전체 표현의 결과로 필요하기 때문에 ++ 연산자에 기인 할 수 없습니다. –

관련 문제