2009. 7. 21. 11:12

인라인(inline) 함수

다음과 같은 매크로 함수를 보자.



\는 줄을 붙여서 만든다는 말이다. 그리고 변수마다 괄호를 친 이유는 지금의 소스에는 관계없지만 복잡해질경우 우선순위가 꼬일 수 있기 때문에 괄호를 친다.

매크로 함수는 C에서 많이 쓰였었지만 매크로 함수에는 심각한 문제점이 있는데 그것은 변수의 형을 검사하지 않는다는 것이다. 따라서 C++에서는 매크로 함수를 사용하지 않는 것을 권장하고 있다.

하지만 매크로 함수에도 장점이 있는데 일반 함수는 스택을 사용하지만 매크로는 그대로 코드가 삽입되는 것이므로 훨씬 빠를 수 있다. 따라서 이러한 매크로 함수의 장점을 대안하기 위해 C++은 인라인 함수라는 것을 제공한다.




inline 함수는 컴파일시 헤더파일에 포함되게 된다.
inline 함수는 보통 함수처럼 호출이 되면 메모리 주소로 점프하는 것이 아니라 매크로 함수처럼 소스코드가 통채로 삽입되게 된다.

'공부합시다 > C++' 카테고리의 다른 글

임시 객체  (0) 2009.07.21
[펌] 함수 포인터 및 클래스 멤버함수의 함수포인터화  (0) 2009.07.21
함수 const  (0) 2009.07.21
클래스 내 static 함수  (0) 2009.07.21
클래스내 static 변수 초기화 방법  (0) 2009.07.21