반응형
저는 개인적으로 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가 더 빠르다고 볼 수 있는 거죠.
예전에야 하드웨어 성능 낮고 컴파일러도 최적화 되기 전에는 차이가 났겠지만
요즘 컴파일러도 최적화 되고 하드웨어 성능도 만만치 않은데 차이가 날까요 ? ^^
거의 없다고 보셔도 될겁니다.
그냥 저는 코딩 스타일이라고 생각 합니다.
아무거나 쓰셔도 무방 합니다!
반응형
'- C , C++' 카테고리의 다른 글
[ C, C++] 소수점 이하 올림과 내림 함수 (0) | 2016.10.01 |
---|---|
[ C, C++ ] x의 n승 구하기 (0) | 2016.09.30 |
[ C / C++ ] 간단한 중복 없는 정수 Random 함수 (0) | 2015.08.28 |
[ C / C++ ] 간단한 삽입 정렬 (0) | 2015.08.27 |