inline 함수의 장점이 뭔가요?

조회수 4239회

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)