Condividi tramite


naked (C++)

Specifici di Microsoft

per le funzioni dichiarate con naked l'attributo, 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.si noti che naked l'attributo è valido solo su x86 e non è disponibile in x64 o Itanium.

__declspec(naked) declarator

Note

Poiché naked l'attributo è rilevante solo alla definizione di funzione e non è un modificatore di tipo, le funzioni naked devono utilizzare la sintassi degli attributi estesa e __declspec parola chiave.

Il compilatore non è in grado di generare una funzione inline per una funzione contrassegnata con l'attributo naked, anche se la funzione viene contrassegnata con __forceinline parola chiave.

Il compilatore genera un errore se naked l'attributo è applicato a diversa dalla definizione di un metodo non membro.

Esempi

questo codice definisce una funzione con naked attributo:

__declspec( naked ) int func( formal_parameters ) {}

O, in alternativa:

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

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, in questo esempio di codice riportato di seguito genera un errore:

__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.Ad esempio, questa dichiarazione genera un errore di compilazione:

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

Microsoft FINALE specifico

Vedere anche

Riferimenti

__declspec

Parole chiave C++

Chiamate di funzione naked