본문 바로가기
공부/C, C++

게임 개발에서 i++이 아니라 ++i를 사용하는 이유

by 김샤랑 2023. 11. 2.

게임 개발에서 i++이 아니라 ++i를 사용하는 이유


 

게임 개발을 하다 보면 반복문을 돌 때 i++이 아닌 ++i로 작성한 코드를 많이 보게 될 것이다. 

그 이유는 아래와 같다. 

 

즉 i++은 깊은 복사, ++i는 레퍼런스 반환.

i++일 때는 복사 비용이 증가하기 때문에 해당 이터레이터의 규모가 클수록 성능 저하를 일으킬 수 있다. 


실제 코드로 살펴보자. 기본 자료형의 연산자 오버로딩은 코드를 볼수가 없어서 stl vector 연산자 오버로딩 코드를 가져왔다. 

 

_Inc() 함수는 increase라서 값 더해주는 함수라고 생각해두고, 코드만 보면 전위는 레퍼런스 연산자로 그대로 객체에 값을 더해주고, 후위는 임시 객체를 만들어서 주는걸 볼 수 있다!!


 

사실 int와 같은 기본 자료형은 ++i를 안써도 최적화가 되어 있다. 

습관은 중요하니 ++i를 하는 버릇을 들이자!

 

 

 

 

출처 : ChatGPT

댓글