Naked Functions

Spécifique à Microsoft

L'attribut de classe de stockage d' naked est une extension de spécifiques au langage C.Pour les fonctions déclarées avec l'attribut de classe de stockage d' naked , le compilateur génère un code sans le code du prologue et d'épilogue.Vous pouvez utiliser cette fonction pour écrire vos propres séquences de code du prologue/épilogue à l'aide de le code assembleur inline.Les fonctions naked sont en particulier par écrit les pilotes de périphériques virtuels utiles.

Étant donné que l'attribut d' naked est uniquement approprié à la définition d'une fonction et n'est pas un modificateur de type, les fonctions naked utilisent la syntaxe d'attribut étendu, décrite dans attributs étendus de classe de stockage.

l'exemple suivant définit une fonction avec l'attribut d' naked :

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

Ou, vous pouvez aussi :

#define Naked   __declspec( naked )

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

L'attribut d' naked affecte uniquement la nature de la génération de code du compilateur pour les séquences des prologues et de épilogue de la fonction.Il n'affecte pas le code généré pour appeler de fonctions.Ainsi, l'attribut d' naked n'est pas considéré comme une partie du type de la fonction, et les pointeurs fonction ne peuvent pas avoir l'attribut d' naked .en outre, l'attribut d' naked ne peut pas être appliqué à une définition de données.Par exemple, le code suivant génère des erreurs :

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

L'attribut d' naked est pertinent uniquement à la définition de la fonction et ne peut pas être spécifié dans le prototype de la fonction.La déclaration suivante génère une erreur de compilation :

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

détail de FIN Microsoft

Voir aussi

Référence

Définitions de fonctions C