Sdílet prostřednictvím


__declspec

Konkrétní společnosti Microsoft

Rozšířený atribut syntaxe určující použití třídy úložiště informací __declspec klíčové slovo určuje, že daný typ instance uložena s atributem třídy úložiště společnosti Microsoft uvedených níže.Příklady jiných modifikátory třídy úložiště static a extern klíčová slova.Však tato klíčová slova jsou součástí specifikace ANSI C a C++ jazyků a jako takové nejsou pokryty syntaxe doplňkového atributu.Rozšířený atribut syntaxe zjednodušuje a standardizuje rozšíření společnosti Microsoft pro jazyky c a C++.

Gramatika

  • Specifikátor Decl:
    __declspec ( Extended-decl modifikátor seq)

  • Extended-decl modifikátor seq:
    Extended modifikátor declopt

    Extended modifikátor decl extended-decl modifikátor seq

  • Extended modifikátor decl:
    align(#)

    allocate("segname")

    appdomain

    deprecated

    dllimport

    dllexport

    jitintrinsic

    naked

    noalias

    noinline

    noreturn

    nothrow

    novtable

    process

    property({get=get_func_name|,put=put_func_name})

    restrict

    safebuffers

    selectany

    thread

    uuid("ComObjectGUID")

Prázdné místo odděluje sekvence modifikátor deklarace.Příklady se v dalších oddílech.

Rozšířený atribut gramatiky podporuje tyto atributy třídy úložiště společnosti Microsoft: Zarovnat, přidělit, appdomain, se, dllexport, dllimport, jitintrinsic, holé, noalias, noinline, noreturn, nothrow, novtable, proces, omezit, safebuffers, selectany, a vlákno.Podporuje také tyto atributy objektu COM: Vlastnost a uuid.

dllexport, dllimport, naked, noalias, nothrow, property, restrict, selectany, thread, A uuid vlastnosti objektu nebo funkce, které jsou použity pouze prohlášení jsou atributy třídy úložiště.thread Má vliv na data a objekty pouze atribut.naked Atribut ovlivní pouze funkce.dllimport a dllexport atributů ovlivnit funkce data a objekty.property, selectany, A uuid vliv atributy objektů COM.

__declspec Uvádět klíčová slova na začátku jednoduchého prohlášení.Kompilátor ignoruje bez varování všech __declspec klíčových slov zadaných po * nebo & a z identifikátor proměnné v prohlášení.

A __declspec na začátku prohlášení uživatelem definovaný typ zadán atribut platí pro proměnné typu.Příklad:

__declspec(dllimport) class X {} varX;

V tomto případě platí atribut pro varX.A __declspec atribut umístěn po class nebo struct klíčového slova, která se vztahuje na typ definovaný uživatelem.Příklad:

class __declspec(dllimport) X {};

V tomto případě platí atribut pro X.

Obecných pro použití __declspec atribut jednoduchého prohlášení není takto:

decl-specifier-seq declarator-list;

Decl specifikátor seq by měl obsahovat, mimo jiné základní typ (napříkladintfloat, typedef, nebo název třídy), úložiště (například třídastatic, extern), or the __declspec extension.Init declarator seznamu by měl obsahovat mimo jiné ukazatele část prohlášení.Příklad:

__declspec(selectany) int * pi1 = 0;   //OK, selectany & int both part of decl-specifier
int __declspec(selectany) * pi2 = 0;   //OK, selectany & int both part of decl-specifier
int * __declspec(selectany) pi3 = 0;   //ERROR, selectany is not part of a declarator

Následující kód deklaruje místní proměnná typu integer podprocesu a inicializuje s hodnotou:

// Example of the __declspec keyword
__declspec( thread ) int tls_i = 1;

Viz také

Referenční dokumentace

Klíčových slov jazyka C++

C rozšířené atributy třídy úložiště