본문 바로가기

Programming/C++

C++ inline 함수

* inline함수
    - 매크로함수와 그냥 함수의 중간적인 성격을 띤 함수이다.


    - 일반적인 함수를 사용하면 필요할 때마다 호출하여 사용하므로 실행파일의 크기를

     줄일 수 있으나 제어권의 이동이 심하므로 실행 속도가 느려진다.


     - 매크로 함수는 컴파일시 전개되어 치환되므로 제어권 이동이 발생하지 않으므로

     속도가 빠르지만 데이터형 지정을 할 수가 없고 실행파일의 용량이 커지게 된다.


    - 인라인 함수는 컴파일시 통째로 매크로처럼 전개되어 속도면에서 큰 이득을 얻는다.

     그리고 데이터형 체크를 할 수 있는 함수이다.
     용량이 커지는 단점이 있긴 하지만 간단한 작업을 하는 함수의 경우에 이용하면 매우

     편리하다.

 

 * inline 함수의 제약조건
    - inline 함수 내에서는 루프문(do whie, while, for), switch, goto문을 사용할 수 없다.
    - inline 함수호출시 호출되기 전에 먼저 inline 함수가 정의되어 있어야 한다.
    - inline 함수 내에서 재귀호출을 할수 없다.
    - inline 함수는 한 수식 내에서 두 번이상 호출될수 없다.
    - 함수 포인터로 inline 함수의 주소를 취할 수 없다.
    - inline 함수는 호출방식이 아니라 치환전개방식이기 때문이다.


ex)

#include <iostream>

inline int square(int nX, int nY)
{

return nX * nY;
}

int main()
{
std::cout<< square(10, 10);
return 0;
}

'Programming > C++' 카테고리의 다른 글

Effective C++ 정리글(펌)  (0) 2009.11.21
비트 연산자  (0) 2009.11.21
namespace Declaration  (0) 2009.11.20
friend 함수  (0) 2009.11.20
Class 에서 함수 정의에 사용되는 static  (0) 2009.11.19