다음을 통해 공유


인라인 함수와 함께 사용할 때

인라인 함수는 전용 데이터 멤버에 액세스하는 것처럼 작은 함수에서 가장 적합하게 사용됩니다. 한 줄 또는 두 줄 "접근자" 함수의 주요 목적은 개체에 대한 상태 정보를 반환하는 것입니다. 간단한 함수는 함수 호출의 오버헤드에 민감합니다. 긴 함수는 호출/반환 시퀀스에서 상당히 시간이 적게 소요되며 인라이닝으로 인한 이점이 크지 않습니다.

예제

함수 호출 결과에 소개된 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으로 지정하는 클래스의 클라이언트에서 상대적으로 일반적인 작업이라고 가정하면 일반적으로 오버헤드는 다음의 상황에서 저장됩니다.

  • 함수 호출(개체의 주소를 스택에 전달 및 배치하는 매개 변수 포함)

  • 호출자의 스택 프레임의 보존

  • 새 스택 프레임 설정

  • 반환 값 전달

  • 기존 스택 프레임 복원

  • 반환

참고 항목

참조

inline, __inline, __forceinline