inline 함수의 장점이 뭔가요?
조회수 4175회
C++에서 inline함수의 장/단점이 뭔가요? 속도가 아주 조금 더 빠르다고 하던데 옛날 컴퓨터에서는 빠를지 몰라도 요즘 컴퓨터는 컴파일러가 최적화도 다 해주고, CPU도 빠르고 메모리도 엄청 많잖아요. 지금도 inline을 쓰는 게 정말 빠른 건가요?
1 답변
-
inline함수를 빠르다고 하는 이유는 이론적으로, inline함수는 일반 함수와 달리 컴파일러가 inline함수 호출 부분을 함수 내용으로 바꿔줘 call stack에 push/pop을 하지 않기 때문입니다. (하지만 컴파일러가 inline으로 처리해주지 않는 경우가 있어 항상 inline함수가 더 빠르다고 할 수는 없습니다.)
말씀하신 것처럼 요즘은 엄청난 차이를 내는 건 아니지만, 아래와 같이 연산을 아주 많이 하는 경우는 inline을 쓰는 게 조금 더 빠릅니다.
inline int aplusb_pow2(int a, int b) { return (a + b)*(a + b) ; } for(int a = 0; a < 900000; ++a) for(int b = 0; b < 900000; ++b) aplusb_pow2(a, b);
댓글 입력