인라인 함수

jaehun_dev·2022년 12월 1일
0

C++

목록 보기
2/3

일반적인 함수는 매개변수, 리턴 주소 등을 스택에 저장한 뒤 프로그램의 제어 (PC)를 함수 내로 이동하다. 이 후 함수 내의 지역 변수 등을 스택에 저장하며 함수를 수행하고, 이 후 리턴값을 반환하고 리턴 주소로 복귀한다. 이러한 과정으로 인해 함수의 호출에는 약간의 시간이 걸리는데, 빠른 성능을 위해 이러한 호출 시간을 줄이고 싶을 때는 인라인 함수를 사용할 수 있다.

인라인 함수

함수의 모든 코드를 호출된 자리에 바로 삽입하는 방식의 함수. 따라서 함수 호출에 걸리는 시간이 단축된다.
❗️인라인 함수는 재귀 호출이 허용되지 않는다.

인라인 함수 예시

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

int main(){
	cout << func(3,5);
	return 0;
}

매크로 함수와의 차이점?

매크로 함수는 단순 치환이다.예를 들어
#define fun(x) (x*x)
라는 매크로 함수를

x=2;
fun(x+5);

로 실행한다면, 7*7=49의 결과가 나오는 것이 아닌,2+5*2+5=17의 결과가 나온다. 그러나 인라인 함수는 이러한 단순 치환이 아니기 때문에 정상적인 결과인 49가 나온다.

단점?

매 함수 호출마다 해당 함수를 전부 가지고 오기 때문에 메모리 공간적으로 낭비가 심하다. 즉 10번 함수를 호출하면 10개의 동일한 코드가 메모리를 차지한다.

profile
취업준비생/코딩&프로젝트 같이 하실분 연락주세요

0개의 댓글