[C++] 인라인(inline) 함수

Date:     Updated:

카테고리:

태그:

이 글은 C++ 인라인(inline) 함수를 공부하고 정리한 글입니다

인라인 함수

  • 매크로와 매우 비슷한 개념으로 복붙을 해준다
  • 함수호출에 필요한 오버헤드를 줄일수 있다
    • 매크로와 다른점
      • 매크로는 디버깅하기 힘듬
        • 콜스택에 함수이름이 안 보임
        • 중단점도 설정 불가능
      • 매크로는 범위를 준수하지 않음
namespace name1
{
    class Animal
    {
    public :
        inline int GetAge();
    private:
        int mAge;
    };

    int Animal::GetAge()
    {
        return mAge;
    }
}
  • inline 키워드는 힌트일 뿐
    • 실제로는 인라인 안될 수도 있음
    • 컴파일러가 자기 맘대로 아무 함수나 인라인 할 수도 있음
  • 인라인 함수 구현이 헤더 파일에 위치해야함
    • 복붙을 하려면 컴파일러가 그 구현체를 볼 수 있어야 하기때문에
    • 각 cpp 파일은 따로 컴파일 됨
    • 따라서 b.h를 인클루드하는 a.cpp파일을 컴파일 할 때, 컴파일러는 b.cpp에 뭐가 들어 있는지 모른다

    사용할 때 주의점

    • 간단한 함수에 적합
      • 특히 getter나 setter
    • 실행파일의 크기가 증가하기가 쉬움
      • 동일한 코드를 여러 번 복붙하니까
      • 남용하지 말 것
      • 실행파일이 작을수록 CPU 캐시하고 잘 작동 -> 속도가 빨라질 수 있음


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기