인라인 함수

-> 매크로 함수의 장점을 취하고, 단점을 보완한 함수

1
2
3
4
5
6
#define SQUARE(x) (x) * (x)
 
inline int Square(int _x)
{
    return _x * _x;
}
cs

매크로의 단점

##1. 디버깅 불가

##2. 복잡한 함수

 

인라인 함수가 일반 함수로 바뀌는 경우

#1. 함수 포인터로 이용할 경우

#2. 재귀형태로 함수를 호출할 경우

#3. 컴파일러 버그

-> inline 키워드가 있어도 컴파일러의 판단에 따라 일반 함수가 될 수가 있고,

-> 반대로 inline 키워드가 없어도 인라인 함수가 될 수도 있다.

 

 

인라인 함수의 주의사항

-> 헤더파일에 함수의 정의부까지 구현해야 한다.

-> 그런데, 헤더파일에 함수의 정의부를 모두 구현할 경우 파일 분할의 목적이 사라지게 된다.

-> 그렇기 때문에 한줄 짜리만 대부분 인라인을 사용한다.

-> 전역 함수 일 경우 파일 분할 시 주의사항과 중복된 내용이 있기 때문에 inline 키워드를 무조건 명시해야만 한다.

-> 헤더파일에 함수의 정의부를 모두 구현할 경우 파일 분할의 목적이 사라지게 된다.

+ Recent posts