인라인 함수와 함께 사용할 때
인라인 함수는 전용 데이터 멤버에 액세스하는 것처럼 작은 함수에서 가장 적합하게 사용됩니다. 한 줄 또는 두 줄 "접근자" 함수의 주요 목적은 개체에 대한 상태 정보를 반환하는 것입니다. 간단한 함수는 함수 호출의 오버헤드에 민감합니다. 긴 함수는 호출/반환 시퀀스에서 상당히 시간이 적게 소요되며 인라이닝으로 인한 이점이 크지 않습니다.
예제
함수 호출 결과에 소개된 Point 클래스는 다음과 같이 최적화될 수 있습니다.
// when_to_use_inline_functions.cpp
class Point
{
public:
// Define "accessor" functions as
// reference types.
unsigned& x();
unsigned& y();
private:
unsigned _x;
unsigned _y;
};
inline unsigned& Point::x()
{
return _x;
}
inline unsigned& Point::y()
{
return _y;
}
int main()
{
}
좌표 조작이 두 접근자 함수(앞의 예에서 x 및 y)를 inline으로 지정하는 클래스의 클라이언트에서 상대적으로 일반적인 작업이라고 가정하면 일반적으로 오버헤드는 다음의 상황에서 저장됩니다.
함수 호출(개체의 주소를 스택에 전달 및 배치하는 매개 변수 포함)
호출자의 스택 프레임의 보존
새 스택 프레임 설정
반환 값 전달
기존 스택 프레임 복원
반환