본문 바로가기
프로그래밍/C, C++

inline 함수란 무엇인가?

by JR2 2021. 5. 25.

inline 함수란.. 말 그대로 어떠한 함수를, main함수에 있는것 처럼 실행시켜 달라고 컴파일러에게 요청하는 것이다.

 

사용법은 일반 함수 이름 앞에 inline이란 말을 붙이면 된다.

컴파일러에게 강요하는 것이지, 컴파일러는 inline을 하는게 이득일지 아닐지를 판단하여 처리한다.

 

한국말보다 쉬운 소스코드로 예를들어 보겠다.

 

아래는 일반 함수 사용 시 이다.

#include <stdio.h>

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

int main(void)
{
	int a = 5;
    int b = 10;
    
    printf("%d" ,sum(a,b));
    
	return 0;
}

굉장히 간단한 예시이다.

printf에서 sum이라는 함수가 호출되면, sum이라는 함수의 주소값을 받아 온 후 함수의 내용을 실행한다.

 

 

하지만 inline을 사용할 경우는

#include <stdio.h>

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

int main(void)
{
	int a = 5;
    int b = 10;
    
    printf("%d" ,sum(a,b));
    
	return 0;
}

sum 함수에 있는 return a+b;를 main함수에 그대로 복사 붙혀넣기 하는 방식이 된다.

그러므로 sum함수의 주소값을 받아올 필요가 없다. 즉 오버헤딩이 사라지게 된다.

 

이러한 오버헤딩의 유무는 간단한 함수지만, 굉장히 많이 호출되는 함수에 쓰면 좋다.

댓글