85.14 인라인 함수 사용하기

인라인 함수는 함수를 선언할 때 inline 키워드를 붙입니다.

inline 반환값자료형 함수이름(매개변수자료형 매개변수이름)
{
}

다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요.

inline.c

#include <stdio.h>

// GCC에서 -std=c99 또는 -std=c11 옵션을 사용할 때는 extern inline을 붙임
// extern inline int add(int a, int b)
inline int add(int a, int b)    // 인라인 함수로 정의
{
    return a + b;
}

int main()
{
    int num1;

    num1 = add(10, 20);    // 인라인 함수 호출

    printf("%d\n", num1);  // 30

    return 0;
}

실행 결과

30

실행을 해보면 일반 함수와 다르지 않습니다. 하지만 다음과 같이 인라인 함수는 호출을 하지 않고 함수의 코드를 그 자리에서 그대로 실행합니다. 즉, 컴파일러는 함수를 사용하는 부분에 함수의 코드를 복제해서 넣어줍니다.

그림 85‑4 일반 함수와 인라인 함수의 차이

즉, 함수 호출 과정이 없으므로 속도가 좀 더 빠릅니다. 따라서 인라인 함수는 자주 호출되면서 속도가 중요한 부분에 주로 사용합니다. 단, 함수의 코드가 복제되므로 함수를 많이 사용하면 실행 파일의 크기가 커집니다.