SW

인라인(inline) 함수와 매크로(macro)

S.Zinlee 2016. 7. 25. 21:32
inline 함수는 프로그램의 실행 속도를 높이기 위해서 c++에 추가된 기능이며 쉽게 이해하기 위해 매크로 함수와 비교해 보면 좋다.


예를 들어 아래와 같이 SQUARE라는 매크로를 만들어 사용할 경우,


 
#define SQUARE(x) ((X)*(X))

int main(void)
{
	 std::cout << SQUARE(5) << std::endl;
	 return 0;
}
 


실제 프로그램 실행 시 main 함수의 SQUARE를 사용하게 될 경우 define된 주소로 점프 하여 실행 후 다시 원래로 돌아온다.


하지만 인라인 함수의 경우 전처리이기 아래와 같이 사용 하게 되면, 컴파일 시 인라인 함수가 코드 안에 삽입 되기 때문에 실제 main함수에서 SQUARE를 사용 시 삽인된 코드가 바로 실행 되기 때문에 속도도 빠르고 효율적이다.


 
inline int SQUARE(int x)
{
	 return x*x;
}

int main(void)
{
	 std::cout << SQUARE(5) << std::endl;
	 return 0;
}