Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 인라인 함수의 이점은 무엇입니까?

<시간/>

C++ 인라인 함수는 일반적으로 클래스와 함께 사용되는 강력한 개념입니다. 함수가 인라인이면 컴파일러는 컴파일 시간에 함수가 호출되는 각 지점에 해당 함수의 코드 복사본을 배치합니다.

인라인 함수를 변경하면 컴파일러가 모든 코드를 다시 한 번 교체해야 하므로 함수의 모든 클라이언트를 다시 컴파일해야 할 수 있습니다. 그렇지 않으면 이전 기능이 계속 사용됩니다.

함수를 인라인하려면 키워드 inline을 함수 이름 앞에 놓고 함수를 호출하기 전에 함수를 정의하십시오. 컴파일러는 정의된 함수가 라인 이상인 경우 인라인 한정자를 무시할 수 있습니다.

클래스 정의의 함수 정의는 인라인 지정자를 사용하지 않더라도 인라인 함수 정의입니다.

다음은 인라인 함수를 사용하여 최대 두 개의 숫자를 반환하는 예입니다 -

예시

#include <iostream>
using namespace std;
inline int Max(int x, int y) {
   return (x > y)? x : y;
}
// Main function for the program
int main() {
   cout << "Max (20,10): " << Max(20,10) << endl;
   cout << "Max (0,200): " << Max(0,200) << endl;
   cout << "Max (100,1010): " << Max(100,1010) << endl;
   return 0;
}

출력

Max (20,10): 20
Max (0,200): 200
Max (100,1010): 1010

이제 코드에서 인라인 함수를 사용하면 어떤 이점이 있는지 살펴보겠습니다.

  • 여기서 함수 호출 오버헤드가 발생하지 않습니다.

  • 함수가 호출될 때 스택에 있는 푸시 및 팝 변수의 오버헤드를 저장합니다.

  • 함수에서 반환 호출의 오버 헤드를 저장합니다.

  • 하나의 인라인 함수가 생성되면 컴파일러는 함수 본문에 대해 컨텍스트별 최적화를 수행할 수 있습니다. 이러한 종류의 최적화는 일반 기능에 대해 수행되지 않습니다.

  • 작은 인라인 함수를 사용하면 임베디드 시스템에 유용할 수 있습니다. 인라인은 함수 호출 프리앰블 및 반환보다 적은 코드를 생성할 수 있기 때문입니다.