[c++] 인라인 함수와 매크로 함수의 차이점

인라인 함수

인라인 함수는 컴파일러에 의해 처리됩니다. 함수 호출을 효율적으로 처리하기 위해 동적으로 함수를 호출하는 대신 함수의 본문을 호출 지점에 직접 삽입합니다. 이렇게 함으로써 함수 호출의 오버헤드를 줄일 수 있습니다. 또한, 함수 호출 대신 코드를 삽입하기 때문에 코드가 더 빨리 실행됩니다.

인라인 함수는 함수 호출을 피할 수 없는 작은 함수나 루프 내에서 간단한 작업을 수행하는 데 사용됩니다.

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

매크로 함수

매크로 함수는 전처리기에 의해 처리됩니다. 함수 호출을 단순히 매크로의 본문으로 치환하여 코드를 생성합니다. 따라서, 런타임 오버헤드가 없지만, 부작용과 디버깅이 어려울 수 있습니다.

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

인라인 함수와 매크로 함수의 가장 큰 차이점은 컴파일러에 의한 처리와 전처리기에 의한 처리입니다. 인라인 함수는 컴파일 시간에 처리되지만, 매크로 함수는 전처리 단계에서 처리됩니다. 인라인 함수는 타입 안전성과 디버깅을 보장하는 데 도움이 되지만, 매크로 함수는 일반적으로 보다 쉽게 오용될 수 있습니다.

따라서, 코드의 효율성과 안정성을 고려하여 인라인 함수를 매크로 함수보다 선호하는 것이 일반적입니다.

참고문헌: