inline 함수의 장점이 뭔가요?

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

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

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.