naked (C++)
Konkrétní společnosti Microsoft
Pro funkce deklarované s naked atribut Kompilátor generuje kód bez kódu prolog a epilog.Tuto funkci můžete zapisovat sekvence kód vlastní prologu/epilog, pomocí inline assembler kódu.Holé funkce jsou zvláště užitečné písemně virtuální ovladače zařízení.Všimněte si, že naked atribut je platný pouze v x 86 a není k dispozici na x64 nebo Itanium.
__declspec(naked) declarator
Poznámky
Protože naked atribut je pouze definice funkce a není typ modifikátor, holé funkce musíte použít rozšířený atribut syntaxi a __declspec klíčové slovo.
Kompilátor nemůže generovat vložené funkci, která bude funkce s atributem holé, i když funkce také označena __forceinline klíčové slovo.
Kompilátor chybu problémy, pokud naked atribut se aplikuje na nic jiného než definice metody třetí.
Příklady
Tento kód definuje funkci s naked atribut:
__declspec( naked ) int func( formal_parameters ) {}
Nebo střídavě:
#define Naked __declspec( naked )
Naked int func( formal_parameters ) {}
naked Atribut ovlivňuje povahu kompilátoru generování kódu pro funkce prolog a epilog sekvencí.Neovlivní kód, který je generován pro volání těchto funkcí.Tedy naked není považován za součást funkce typ atributu a nemůže mít ukazatelů funkcí naked atributu.Kromě toho naked atribut nelze použít k definici dat.Tento ukázkový kód například vygeneruje chybu:
__declspec( naked ) int i; // Error--naked attribute not
// permitted on data declarations.
naked Je relevantní pouze pro definice funkce a funkce prototypu nemůže být zadán atribut.Toto prohlášení například vygeneruje chybu kompilátoru:
__declspec( naked ) int func(); // Error--naked attribute not
// permitted on function declarations
Konec konkrétní společnosti Microsoft