인라인 함수Inline Functions

Microsoft 전용Microsoft Specific

__inline 키워드는 컴파일러가 모든 함수 호출 건에 대해 함수 정의 내에서 코드를 대체하라고 말합니다.The __inline keyword tells the compiler to substitute the code within the function definition for every instance of a function call. 하지만 코드 대체는 컴파일러의 판단하에서만 발생합니다.However, substitution occurs only at the compiler's discretion. 예를 들어, 컴파일러는 해당 주소를 가져온 경우나 인라인에 비해 너무 클 경우에는 함수를 인라인하지 않습니다.For example, the compiler does not inline a function if its address is taken or if it is too large to inline.

인라이닝의 후보로 간주되는 함수의 경우 새 스타일 함수 정의를 사용해야 합니다.For a function to be considered as a candidate for inlining, it must use the new-style function definition.

이 양식을 사용하여 인라인 함수를 지정합니다.Use this form to specify an inline function:

__inline typeopt function-definition__inline typeopt function-definition

인라인 함수를 사용하면 보다 빨리 코드를 생성할 수 있고 동등한 함수 호출이 생성하는 코드보다 더 작은 코드를 생성하는 경우도 있습니다. 그 이유는 다음과 같습니다.The use of inline functions generates faster code and can sometimes generate smaller code than the equivalent function call generates for the following reasons:

  • 함수 호출을 실행하는 데 필요한 시간을 저장합니다.It saves the time required to execute function calls.

  • 3줄 이하의 작은 인라인 함수는 컴파일러 인수가 인수 및 반환 값을 처리하는 코드를 생성하지 않으므로 해당 함수 호출보다 적은 코드를 만듭니다.Small inline functions, perhaps three lines or less, create less code than the equivalent function call because the compiler doesn't generate code to handle arguments and a return value.

  • 인라인으로 생성된 함수에서는 컴파일러가 프로시저 간 최적화를 수행하지 않기 때문에 일반 함수에 사용할 수 없는 코드 최적화가 진행됩니다.Functions generated inline are subject to code optimizations not available to normal functions because the compiler does not perform interprocedural optimizations.

__inline을 사용하는 함수는 인라인 어셈블러 코드와 혼동해서는 안 됩니다.Functions using __inline should not be confused with inline assembler code. 자세한 내용은 인라인 어셈블러를 참조하세요.See Inline Assembler for more information.

Microsoft 전용 종료END Microsoft Specific

참고 항목See Also

inline, __inline, __forceinlineinline, __inline, __forceinline