Attributs étendus de classe de stockage C
Section spécifique à Microsoft
Des informations plus récentes à ce sujet sont disponibles dans __declspec (Référence C++).
La syntaxe à attributs étendus simplifie et normalise les extensions spécifiques à Microsoft pour le langage C. Les attributs de classe de stockage qui utilisent la syntaxe à attributs étendus incluent thread, naked, dllimport et dllexport.
La syntaxe à attributs étendus utilisée pour la spécification des informations de classe de stockage utilise le mot clé __declspec, qui indique qu'une instance d'un type donné doit être stockée avec un attribut de classe de stockage spécifique à Microsoft (thread, naked, dllimport ou dllexport). Parmi les exemples d'autres modificateurs de classe de stockage figurent les mots clés static et extern. Toutefois, ces mots clés font partie de la norme ANSI C et, en tant que tels, ne sont pas couverts par la syntaxe à attributs étendus.
Syntaxe
storage-class-specifier:
__declspec ( extended-decl-modifier-seq ) /* Spécifique à Microsoft */extended-decl-modifier-seq:
extended-decl-modifier optextended-decl-modifier-seq extended-decl-modifier
extended-decl-modifier:
threadnaked
dllimport
dllexport
Un espace blanc sépare les modificateurs de déclaration. Notez que extended-decl-modifier-seq peut être vide, auquel cas __declspec n'a aucun effet.
Les attributs de classe de stockage thread, naked, dllimport et dllexport sont une propriété uniquement de la déclaration des données ou de la fonction à laquelle ils sont appliqués. Ils ne redéfinissent pas les attributs de type de la fonction elle-même. L'attribut thread affecte uniquement les données. L'attribut naked affecte uniquement les fonctions. Les attributs dllimport et dllexport affectent les fonctions et les données.
FIN de la section spécifique à Microsoft