inline 함수

Dohun Lee·2025년 7월 23일

C/C++

목록 보기
8/34

inline 함수

C 언어에서는 매크로 함수를 통해 선행 처리시에 적용되는 함수를 선언하였다. 그리고 이러한 매크로 함수는 일반적인 함수에 비해 실행 속도가 더 빠르다는 장점이 있었다.

이러한 장점을 가진 매크로 함수는 정의하기 어렵다는 단점이 있었는데, 이러한 매크로 함수의 장점을 적용하고 단점은 줄인 함수 선언 방식이 C++의 inline 함수이다.

inline 함수

우선, 인라인 함수는 매크로 함수와 같이 함수의 몸체 부분이 함수 호출 문장을 완전히 대체한다. 하지만 매크로 함수와는 달리 일반 함수와 같은 방법으로 선언이 가능하다. 이런 방식으로 매크로 함수의 장점만 가지고 단점은 제거할수 있는 것이다.


#include <iostream>

inline int ADD(int x, int y){
    return x + y;
}

int main(){
    int result = ADD(1, 2);
    std::cout << result << std::endl;
}

인라인 함수는 위와같이 정의하여 사용 할 수 있다.

인라인 함수와 매크로 함수의 차이점은 함수의 처리 시점에 있다. 매크로 함수는 컴파일 과정 전인 선행 처리 과정에서 처리되지만, 인라인 함수는 컴파일 과정에서 처리된다. 이러한 특징으로 인라인으로 선언하여도 컴파일러에 의해 일반 함수 처럼 처리 될 수도 있고, 일반 함수로 선언 하여도, 컴파일러가 인라인으로 처리하는게 더 빠르다고 판단하면, 컴파일 과정에서 일반 함수가 인라인 함수로 컴파일 될 수도 있다.

또한 매크로 함수에는 없는 단점이 인라인 함수에는 존재하는데, 매크로 함수의 장점인, 함수의 자료형에 영향을 받지 않는 다는 점이 인라인 함수에서는 사라진다.

profile
미국 공대생

0개의 댓글