inline 함수의 장점이 뭔가요?


C++에서 inline함수의 장/단점이 뭔가요? 속도가 아주 조금 더 빠르다고 하던데 옛날 컴퓨터에서는 빠를지 몰라도 요즘 컴퓨터는 컴파일러가 최적화도 다 해주고, CPU도 빠르고 메모리도 엄청 많잖아요. 지금도 inline을 쓰는 게 정말 빠른 건가요?

  • 2016년 01월 24일에 작성됨

조회수 240


1 답변


좋아요
0
싫어요
채택취소하기

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);

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close