inline (인라인) keyword
assembly language의 MECRO와 같은 기능이다.
함수를 호출하게 되면 오버헤드가 발생한다.
하지만 인라인을 사용하면 컴파일 시 해당 블럭으로 분기하는 것이 아니라 해당 코드를 호출한 부분에 끼워 넣는다.
그럼 분기가 발생하지 않아 오버헤드 역시 발생하지 않는다.
그러나 이것을 사용하면 호출한 부분의 코드가 그만큼 늘어나게 된다.
즉, 여러 번 사용할 경우 호출한 코드는 계속 늘어난다는 것이다.
그럼 나중엔 어마어마한 덩어리가 되겠지... 이럴 땐 그냥 함수 호출이 낫다.
Inline ex)
#include<iostream>
using namespace std;
// 정수값을 제곱하는 함수
inline double square(double i)
{
return i *i;
}
int main()
{
double result;
cout << "2의 제곱 " ;
result = square(2.0);
cout << result << endl;
cout << "3의 제곱 " ;
result = square(3.0);
cout << result << endl;
return 0;
/*
여기서 result = square(2.0); 은 result = i*i 코드로 대체되어 컴파일된다.
*/
}
'CS > Cpp' 카테고리의 다른 글
Information-hiding (0) | 2013.03.12 |
---|---|
Encapsulation (0) | 2013.03.12 |
Reference (0) | 2013.02.18 |
Namespace (0) | 2013.02.18 |
Runtime Error (0) | 2013.02.18 |