인라인(inline) 함수



인라인 함수는 C에서 매크로 함수와 비슷한 기능을 한다.

인라인함수 호출시 해당 문장이 인라인 함수 몸체와 대체한다.

이 때 "함수가 인라인화 되었다."고 표현한다.

매크로 함수의 장점인 일반 함수에 비해 실행 속도가 빠르다.

인라인 함수 역시 이러한 장점을 가지고 있다.

하지만 컴파일러가 인라인화가 성능을 저하시킨다고 판단하면

인라인 키워드를 무시한다.



인라인 함수 이해하기

 

다음과 같은 인라인 함수가 있다.

 inline int SUM( int a, int b )

 {

     return a + b ;

 }


아래와 같이 인라인 함수를 호출 한다.


 std::cout<<SUM(1,2)<<std::endl;


컴파일이 인라인화 한다. 

인라인 함수 호출 부분이 인라인 함수 몸체로 바뀐다.


[인라인화]

std::cout<<1+2<<std::endl;



호출 문장 SUM(1,2) 이 1+2 된다.



 인라인 함수 예제

    

[전체 예제]


#include <iostream>


inline int sum( int a , int b  )

{

    return a + b ;

}


int main(int argc, char** argv) 

{

    int result = 0 ;

    result = sum( 6, 3 );

    std::cout<<result<<std::endl;


    return 0;

}


[결과]

 9




반응형

'프로그램 > C++' 카테고리의 다른 글

[C++] bool 자료형  (0) 2017.12.29
[C++] namespace 사용법  (0) 2017.12.27
[C++]함수 매개변수 디폴트 값  (0) 2017.12.25
[C++]함수 오버로딩 (Function Overloading)  (0) 2016.12.03
[C++] cout,cin 사용법  (0) 2016.11.15

+ Recent posts