Attributi di classi di archiviazione estesi C
Sezione specifica Microsoft
Informazioni più aggiornate su questo argomento sono contenute in __declspec (riferimento per C++).
La sintassi degli attributi estesa semplifica e standardizza le estensioni specifiche di Microsoft per il linguaggio C. Gli attributi della classe di archiviazione che utilizzano la sintassi degli attributi estesa includono thread, naked, dllimport e dllexport.
La sintassi degli attributi estesa per specificare le informazioni relative alla classe di archiviazione utilizza la parola chiave __declspec, che specifica che un'istanza di un determinato tipo deve essere archiviata con un attributo della classe di archiviazione specifico di Microsoft (thread, naked, dllimport o dllexport). Esempi di altri modificatori della classe di archiviazione includono le parole chiave static ed extern. Tuttavia, queste parole chiave fanno parte dello standard ANSI del linguaggio C e, in quanto tali, non vengono analizzate dalla sintassi degli attributi estesa.
Sintassi
storage-class-specifier:
__declspec ( extended-decl-modifier-seq ) /* Specifico di Microsoft */extended-decl-modifier-seq:
extended-decl-modifier optextended-decl-modifier-seq extended-decl-modifier
extended-decl-modifier:
threadnaked
dllimport
dllexport
Uno spazio vuoto separa i modificatori di dichiarazione. Si noti che extended-decl-modifier-seq può essere vuoto. In questo caso, __declspec non ha effetto.
Gli attributi della classe di archiviazione thread, naked, dllimport e dllexport sono una proprietà solo della dichiarazione dei dati o della funzione a cui sono associati e non consentono di ridefinire gli attributi del tipo della funzione stessa. L'attributo thread influisce solo sui dati. L'attributo naked influisce solo sulle funzioni. Gli attributi dllimport e dllexport influiscono sulle funzioni e sui dati.
Fine sezione specifica Microsoft