Partilhar via


Atributos de classe de armazenamento estendido C

Específico da Microsoft

Informações mais atualizadas sobre este tópico 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 da Microsoft (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 ANSI C e, assim, 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:
    extended-decl-modifier opt

    extended-decl-modifier-seq extended-decl-modifier

  • extended-decl-modifier:
    thread

    naked

    dllimport

    dllexport

O espaço em branco separa os modificadores de declaração. Observe que extended-decl-modifier-seq pode ser vazio; nesse caso, __declspec não tem efeito.

Os atributos de classe de armazenamento thread, naked, dllimport e dllexport são uma propriedade somente da declaração dos dados ou da função aos quais são aplicados; 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 funções e dados.

FIM de Específico da Microsoft

Consulte também

Conceitos

Declarações e tipos