Atributos de classe de armazenamento estendido C

Seção específica da Microsoft

Mais informações atualizadas sobre atributos de classe de armazenamento podem ser encontradas em __declspec (referência C++).

A sintaxe de atributo estendido simplifica e padroniza as extensões específicas da Microsoft para a linguagem C. Os atributos de classe de armazenamento que usam a sintaxe de atributo estendido incluem thread, naked, dllimport e dllexport.

A sintaxe de atributo estendido para a especificação de informações de classe de armazenamento usa a palavra-chave __declspec, que especifica que uma instância de um determinado tipo deve ser armazenada com um atributo de classe de armazenamento específico (thread, naked, dllimport ou dllexport). Exemplos de outros modificadores de classe de armazenamento incluem as palavras-chave static e extern. No entanto, essas palavras-chave fazem parte do padrão ISO C e não são abrangidas pela sintaxe de atributo estendido.

Sintaxe

storage-class-specifier:
__declspec (extended-decl-modifier-seq) /* Específico da Microsoft */

extended-decl-modifier-seq: /* Específico da Microsoft */
extended-decl-modifieropt
extended-decl-modifier-seq extended-decl-modifier

extended-decl-modifier: /* Específico da Microsoft */
thread
naked
dllimport
dllexport

O espaço em branco separa os modificadores de declaração. Um extended-decl-modifier-seq pode estar vazio. Nesse caso, __declspec não tem efeito.

Os atributos de classe de armazenamento thread, naked, dllimport e dllexport são propriedades somente da declaração dos dados ou da função aos quais são aplicadas. Eles não redefinem os atributos de tipo da função em si. O atributo thread afeta somente dados. O atributo naked afeta somente funções. Os atributos dllimport e dllexport afetam somente funções e dados.

Fim da seção específica da Microsoft

Confira também

Declarações e tipos