Delen via


Inlinefuncties

Het inline trefwoord is een functieaanduiding waarmee de compiler de code binnen de functiedefinitie moet vervangen door elk exemplaar van een functie-aanroep.

Opmerkingen

Vervanging van inlinecode vindt alleen plaats naar eigen goeddunken van de compiler. De compiler kan bijvoorbeeld geen inlinefunctie gebruiken als het adres ervan wordt gebruikt of als het te groot is om inline te werken. Wanneer de compiler geen inlinefunctie inline opgeeft die is gedefinieerd in een headerbestand, wordt deze gemarkeerd voor de linker om schendingen van een ODR (One Definition Rule) te voorkomen.

Als u een functie wilt beschouwen als kandidaat voor het inlijnen, moet deze de definitie van de nieuwe functie gebruiken met een handtekening waarmee het retourtype en eventuele parametertypen worden gedeclareert.

Gebruik dit formulier om een inlinefunctie op te geven:

inline function-definition

Inlinefuncties genereren sneller en soms kleinere code dan de equivalente functie-aanroep:

  • Met inlinefuncties bespaart u de tijd die nodig is om de stack voor te bereiden op argumenten en een retourwaarde, en de tijd voor het uitvoeren van de sprong en het retourneren van een functieoproep.

  • Zelfs wanneer kleine inlinefuncties van misschien drie regels of minder meerdere keren worden herhaald, maken ze minder code dan de equivalente functie-aanroep omdat de compiler geen code genereert voor het verwerken van argumenten en een retourwaarde.

  • De compiler kan functies optimaliseren die inline worden gegenereerd op manieren die niet beschikbaar zijn voor normale functies. De compiler voert meestal geen optimalisaties uit tussen verschillende procedures.

Verwar functies die worden gebruikt inline met inlineassemblycode niet. Zie Inline assemblyer voor meer informatie over inlineassembly.

specifieke microsoft-

Microsoft biedt ook ondersteuning __inline voor en __forceinline trefwoorden om de compiler te laten weten dat de code in de functiedefinitie voor elk exemplaar van een functie-aanroep moet worden vervangen. Het __inline trefwoord is een synoniem voor inline. Het __forceinline trefwoord vertelt de compiler om de heuristiek te versoepelen over of de functie inline moet worden gebruikt, hoewel het niet garandeert dat een functie inline wordt weergegeven.

Voor compatibiliteit met eerdere versies _inline en _forceinline synoniemen zijn voor __inline respectievelijk __forceinlinecompileroptie /Za (taalextensies uitschakelen) is opgegeven.

End Microsoft specific

Zie ook

inline, , __inline__forceinline