Funzioni inlineInline Functions

Sezione specifica MicrosoftMicrosoft Specific

La parola chiave __inline indica al compilatore di sostituire il codice nella definizione di funzione per ogni istanza di una chiamata di funzione.The __inline keyword tells the compiler to substitute the code within the function definition for every instance of a function call. La sostituzione, tuttavia, viene eseguita solo a discrezione del compilatore.However, substitution occurs only at the compiler's discretion. Il compilatore ad esempio non rende inline una funzione se ne viene acquisito l'indirizzo o se la funzione è di dimensioni troppo elevate.For example, the compiler does not inline a function if its address is taken or if it is too large to inline.

Affinché una funzione venga considerata candidata per essere resa inline, è necessario utilizzare la definizione di funzione in nuovo stile.For a function to be considered as a candidate for inlining, it must use the new-style function definition.

Utilizzare questo formato per specificare una funzione inline:Use this form to specify an inline function:

__inline typeopt function-definition__inline typeopt function-definition

L'utilizzo delle funzioni inline genera codice più veloce e può talvolta generare codice minore rispetto a quello generato dalla chiamata di funzione equivalente per i seguenti motivi:The use of inline functions generates faster code and can sometimes generate smaller code than the equivalent function call generates for the following reasons:

  • Risparmio del tempo necessario per eseguire chiamate di funzione.It saves the time required to execute function calls.

  • Le funzioni inline di dimensioni minori, costituite da tre righe o meno, creano meno codice rispetto alla chiamata di funzione equivalente in quanto il compilatore non genera codice per gestire gli argomenti e un valore restituito.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.

  • Le funzioni generate come funzioni inline sono soggette alle ottimizzazioni di codice non disponibili per le funzioni normali perché il compilatore non esegue ottimizzazioni tra procedure.Functions generated inline are subject to code optimizations not available to normal functions because the compiler does not perform interprocedural optimizations.

Le funzioni che utilizzano __inline non devono essere confuse con il codice assembler inline.Functions using __inline should not be confused with inline assembler code. Per altre informazioni, vedere Assembler inline.See Inline Assembler for more information.

Fine sezione specifica MicrosoftEND Microsoft Specific

Vedere ancheSee Also

inline, __inline, __forceinlineinline, __inline, __forceinline