[c++] 인라인 함수와 매크로 함수의 적절한 사용 시나리오

이번 글에서는 C++에서의 인라인 함수매크로 함수의 개념과 각각의 적절한 사용 시나리오에 대해 알아보겠습니다.

인라인 함수

인라인 함수는 함수 호출 시 오버헤드를 줄이기 위해 사용됩니다. 함수 호출 시 호출 스택에 인자를 넘기고 복귀 주소를 저장하는 등의 작업이 필요한데, 이러한 오버헤드를 제거하기 위해 컴파일러에 의해 해당 함수의 코드를 호출 위치에 직접 삽입해줍니다. 인라인 함수를 사용하면 실행 속도를 높일 수 있지만, 함수 내에 복잡한 코드가 있다면 오히려 실행 속도가 느려질 수 있습니다.

inline int sum(int a, int b) {
    return a + b;
}

매크로 함수

매크로 함수는 전처리기에 의해 코드가 처리되기 때문에 컴파일 시 인라인 함수와 달리 아무런 오버헤드가 없습니다. 그러나 매크로 함수는 컴파일러의 타입 체크나 오류 처리가 되지 않으며, 일반 함수와 비교하여 유지보수가 어려울 수 있습니다.

#define SUM(a, b) (a + b)

적절한 사용 시나리오

인라인 함수는 일반적인 작은 크기의 함수이거나 반복 사용되는 함수일 때 효과적으로 사용됩니다. 반면에 매크로 함수는 간단하고 단순한 연산을 하는 함수나 컴파일러 시간에 처리되어야 하는 기능이 필요할 때 사용됩니다.

적절한 함수의 사용은 성능 최적화뿐만 아니라 코드의 가독성과 유지보수성에도 영향을 미치므로, 상황에 맞게 적절하게 선택하는 것이 중요합니다.

이상으로 C++에서의 인라인 함수와 매크로 함수에 대해 알아보았습니다. 감사합니다.

Reference