반응형

저는 개인적으로 for문을 사용할 때 ++i 를 사용 합니다.

신입시절 사수에게 이렇게 배웠고 아무 생각없이 코딩 스타일 이구나 생각 했습니다.


요즘 들어 궁금한 것이 많은 20대들이 자꾸 무슨 차이냐고 질문을 하길래

++i 써 그냥 했더니 점점 많은 것을 질문 하더군요 ^^


for문에서 ++i 와 i++ 의 가장큰 차이? 라고 하면 속도라고 할 수 있습니다.


C / C++ Code


1. ++i 의 경우


for( int i = 0; i < 10; ++i ) {

printf( "num: %d", i );

}


operator 코드

int int::operator++() {

this = this + 1;

return this;

}


2. i++ 의 경우

for( int i = 0; i < 10; i++ ) {

printf( "num: %d", i );

}


operator 코드
int int::operator++() {
int returnval = this;
i = i + 1;
return returnval;
}


operator코드를 보시면 둘의 차이점을 알 수 있습니다.

i++ 이 ++i 보다 한줄 더 많죠? 

임시 변수를 생성하기 때문에 그렇 습니다.


반면 ++i의 경우는 자신값에 바로 더해 리턴을 해주죠.

그래서 속도 측면에서 ++i가 더 빠르다고 볼 수 있는 거죠.


예전에야 하드웨어 성능 낮고 컴파일러도 최적화 되기 전에는 차이가 났겠지만

요즘 컴파일러도 최적화 되고 하드웨어 성능도 만만치 않은데 차이가 날까요 ? ^^


거의 없다고 보셔도 될겁니다. 


그냥 저는 코딩 스타일이라고 생각 합니다. 

아무거나 쓰셔도 무방 합니다!

반응형

+ Recent posts