본문 바로가기
C++

[C++] inline 함수의 장단점

728x90
반응형

inline 함수란?

inline함수는 컴파일 과정에서 해당 함수의 코드를 함수 호출 부분으로 옮겨 컴파일해주는 기능입니다.

 

inline 함수의 장점

    - inline함수는 해당 코드 자체가 호출 부분으로 복사되어 사용되기 때문에 일반적인 함수 처럼 런타임 도중에 해당 함수의 메모리 주소로 이동하여 실행 될 필요없이 실행됩니다. 덕분에 실행 속도가 일반 함수에 비해 빠릅니다.

inline 함수의 단점

    - inline함수의 장점은 프로그래밍 할 때는 함수로 나뉘어져있기 때문에 코드의 길이가 짧아 보여도 컴파일할 때 코드의 복사가 일어나서 실질적인 코드의 길이가 늘어나서 code 메모리의 양이 증가합니다. 때문에 메모리 효율측면에서는 일반 함수보다 안 좋습니다. 또한, 구조상 재귀함수 등에서는 사용이 불가능합니다.

 

매크로 함수와의 차이점

    - 가장 큰 차이점은 매크로 함수는 전처리기에서 처리되는 것이고, inline함수는 컴파일 과정에서 처리 된다는 것입니다. 전처리기에서 처리 되는 매크로 함수는 단순히 코드가 치환만 되는 것이기 때문에 예상치못한 오류(연산자 우선순위 때문에 매크로 함수가 나뉘어져 연산되는 문제)가 발생할 수 있습니다. 반대로 inline함수의 경우 컴파일러가 발생 할 수 있는 오류들을 미리 체크하고 컴파일 과정에서 오류를 띄워줍니다.

반응형