Condividi tramite


Naked Funzioni

Specifici di Microsoft

naked l'attributo di classe di archiviazione è un'estensione Microsoft-specifica il linguaggio C.per le funzioni dichiarate con naked l'attributo di classe di archiviazione, il compilatore genera codice senza codice di epilogo e di prologo.È possibile utilizzare questa funzionalità per scrivere per contenere le sequenze di codice epilogo o di prologo utilizzando il codice assembler inline.Le funzioni naked sono particolarmente utili nella scrittura dei driver di periferica virtuali.

Poiché naked l'attributo è rilevante solo alla definizione di funzione e non è un modificatore di tipo, funzioni naked utilizza la sintassi degli attributi estesa, descritta in Attributi estesi di classe di archiviazione.

Nell'esempio seguente viene definita una funzione con naked attributo:

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

o, in alternativa:

#define Naked   __declspec( naked )

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

naked l'attributo influisce solo sulla natura di generazione del codice del compilatore per le sequenze di prologo e dell'epilogo della funzione.Non influisce sul codice che venga generato per chiamare tali funzioni.Pertanto, naked l'attributo non è considerato parte del tipo di funzione e i puntatori a funzione non possono avere naked attributo.Inoltre, naked l'attributo non può essere applicato a una definizione dei dati.Ad esempio, il codice seguente genera gli errori:

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

naked l'attributo è rilevante solo alla definizione della funzione e non può essere specificato nel prototipo della funzione.La dichiarazione seguente genera un errore di compilazione:

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

Microsoft FINALE specifico

Vedere anche

Riferimenti

Definizioni di funzioni c