Udostępnij za pośrednictwem


naked (C++)

Programu Microsoft

Do funkcji zadeklarowanych z naked atrybut, kompilator generuje kod bez kodu prologu i epilog.Pisać własne sekwencje kod prolog/epilog przy użyciu kodu assembler wbudowanej, można użyć tej funkcji.Owies funkcje są szczególnie użyteczne w piśmie sterowniki urządzeń wirtualnych.Należy zauważyć, że naked atrybut jest prawidłowa tylko na x 86 i nie jest dostępny na x64 lub Itanium.

__declspec(naked) declarator

Uwagi

Ponieważ naked atrybut tylko istotne dla zdefiniowania funkcji i nie jest modyfikator typu, funkcje bez nadruku należy używać składni atrybutu rozszerzonego i __declspec słowa kluczowego.

Kompilator nie może wygenerować funkcji śródwierszowej funkcji oznaczone atrybutem owies, nawet jeśli funkcja jest również oznaczone __forceinline słowa kluczowego.

Kompilator generuje błąd, jeśli naked atrybut jest stosowana inna niż definicji metody Państw.

Przykłady

Ten kod zawiera definicję funkcji o naked atrybut:

__declspec( naked ) int func( formal_parameters ) {}

Lub przemiennie:

#define Naked __declspec( naked )
Naked int func( formal_parameters ) {}

naked Atrybut ma wpływ na charakter generowanie kodu kompilatora dla funkcji prologu i epilog sekwencji.Nie wpływa na kod, który jest generowany dla wywoływania tych funkcji.W ten sposób naked atrybut nie jest uważany za część funkcji typu i nie mają wskaźników funkcji naked atrybut.Ponadto naked nie można zastosować atrybutu do definicji danych.Na przykład ten przykładowy kod generuje błąd:

__declspec( naked ) int i;       // Error--naked attribute not
                                 // permitted on data declarations.

naked Atrybut ma zastosowanie tylko do definicji funkcji i nie może być określony w prototyp funkcji.Na przykład Deklaracja ta generuje błąd kompilatora:

__declspec( naked ) int func();  // Error--naked attribute not 
                                 // permitted on function declarations

KONIEC Microsoft szczególne

Zobacz też

Informacje

__declspec

Słów kluczowych języka C++

Wywołania funkcji bez nadruku