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