* 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()
{
int main()
{
std::cout<< square(10, 10);
return 0;
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 |