Udostępnij za pośrednictwem


Naked Funkcje

Programu Microsoft

naked Atrybut klasy magazynowania jest rozszerzenie specyficzne dla firmy Microsoft do języka C.Do funkcji zadeklarowanych z naked atrybut klasy magazynowania, 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.

Ponieważ naked atrybut tylko istotne dla zdefiniowania funkcji i nie jest modyfikator typu, funkcje bez nadruku należy użyć składni atrybutów rozszerzonych, opisane w Rozszerzonych atrybutów klasy magazynowania.

Poniższy przykład definiuje funkcję z naked atrybut:

__declspec( naked ) int func( formal_parameters )
{
   /* Function body */
}

Lub, alternatywnie:

#define Naked   __declspec( naked )

Naked int func( formal_parameters )
{
   /* Function body */
}

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 poniższy kod generuje błędy:

__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.Następujące oświadczenie generuje błąd kompilatora:

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

KONIEC Microsoft szczególne

Zobacz też

Informacje

C definicje funkcji