Sdílet prostřednictvím


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

Viz také

Referenční dokumentace

__declspec

Klíčových slov jazyka C++

Holé volání funkce