Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Nyckelordet inline är en funktionsspecificerare som instruerar kompilatorn att ersätta koden i funktionsdefinitionen för varje instans av ett funktionsanrop.
Anmärkningar
Infogad kodersättning sker endast efter kompilatorns gottfinnande. Kompilatorn infogar till exempel inte en funktion om dess adress tas eller om den är för stor för att infogas. När kompilatorn inte anger en funktion som definierats i en rubrikfil markeras den för länkaren för att undvika överträdelser av en definitionsregel (ODR).
För att en funktion ska betraktas som en kandidat för inlining måste den använda funktionsdefinitionen i ny stil med en signatur som deklarerar returtypen och eventuella parametertyper.
Använd det här formuläret om du vill ange en infogad funktion:
inlinefunktionsdefinition
Infogade funktioner genererar snabbare och ibland mindre kod än motsvarande funktionsanrop:
Infogade funktioner sparar den tid som krävs för att förbereda stacken för argument och ett returvärde samt tiden för att köra ett funktionsanrops hopp och retur.
Även om det upprepas flera gånger skapar små infogade funktioner på kanske tre rader eller mindre mindre kod än motsvarande funktionsanrop eftersom kompilatorn inte genererar kod för att hantera argument och ett returvärde.
Kompilatorn kan optimera funktioner som genereras infogat på sätt som inte är tillgängliga för normala funktioner. Kompilatorn utför vanligtvis inte optimeringar mellan olika procedurer.
Blanda inte ihop funktioner som använder inline med infogad monteringskod. Mer information om infogade monteringsverktyg finns i Infogad monteringsmonterare.
Microsoft-specifika
Microsoft har också stöd __inline för och __forceinline nyckelord för att be kompilatorn att ersätta koden i funktionsdefinitionen för varje instans av ett funktionsanrop. Nyckelordet __inline är en synonym för inline. Nyckelordet __forceinline instruerar kompilatorn att lätta på heuristiken om huruvida funktionen ska infogas, även om den inte garanterar att en funktion kommer att infogas.
För kompatibilitet med tidigare versioner _inline och är synonymer för __inline respektive __forceinline, såvida inte kompilatoralternativet /Za (Inaktivera språktillägg) har angetts_forceinline.
End Microsoft-specifik