Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Klíčové inline slovo je specifikátor funkce, který kompilátoru říká, aby nahradil kód v definici funkce pro každou instanci volání funkce.
Poznámky
Nahrazení vloženého kódu probíhá pouze podle vlastního uvážení kompilátoru. Kompilátor například nenasadí funkci, pokud je její adresa přijata nebo pokud je příliš velká na vloženou. Pokud kompilátor nenasadí funkci definovanou v souboru hlaviček, označí se pro linker, aby nedocházelo k porušení pravidla definice (ODR).
Aby byla funkce považována za kandidáta na vložení, musí použít definici funkce s novým stylem s podpisem, který deklaruje návratový typ a všechny typy parametrů.
Chcete-li zadat vloženou funkci, použijte tento tvar:
inlinefunction-definition
Vložené funkce generují rychleji a někdy menší kód než ekvivalentní volání funkce:
Vložené funkce šetří čas potřebný k přípravě zásobníku na argumenty a návratovou hodnotu a čas spuštění skoku a vrácení volání funkce.
I když se několikrát opakuje, malé vložené funkce možná tři řádky nebo méně vytvářejí méně kódu než ekvivalentní volání funkce, protože kompilátor negeneruje kód pro zpracování argumentů a návratové hodnoty.
Kompilátor může optimalizovat funkce vygenerované vloženými způsoby, které nejsou dostupné pro normální funkce. Kompilátor obvykle neprovádí optimalizace mezi různými postupy.
Nezaměňujte funkce, které se používají inline s vloženým kódem assembleru. Další informace o vložené assembler naleznete v tématu Vložený assembler.
Specifické pro Microsoft
Microsoft také podporuje __inline a __forceinline klíčová slova, aby kompilátoru řekl, aby nahradil kód v definici funkce pro každou instanci volání funkce. Klíčové __inline slovo je synonymem pro inline. Klíčové __forceinline slovo říká kompilátoru, aby uvolnil heuristika, jestli se má funkce vložit, i když nezaručuje, že funkce bude vložena.
Kvůli kompatibilitě s předchozími verzemi _inline a _forceinline jsou synonymy pro __inline a __forceinlinev uvedeném pořadí, pokud není zadána možnost/Zakompilátoru (Zakázat jazyková rozšíření).
End Microsoft specific