__declspec(selectany)

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Schlüsselwörter alphabetisch - Index


Kategorie

Modifizierer, Zusätzliche Schlüsselwörter, Speicherklassen-Spezifizierer

Syntax

__declspec( selectany ) deklarator

Ein globales Datenelement kann normalerweise nur einmal in einer Anwendung oder einer Bibliothek initialisiert werden. Mit Hilfe des Attributs selectany können in Header-Dateien definierte globale Daten initialisiert werden, wenn diese in mehrere Quellcode-Dateien eingebunden werden.

Hinweis: Dieses Attribut kann nur für die tatsächliche Initialisierung globaler Datenelemente verwendet werden, die extern sichtbar sind.

Der folgende Code zeigt, wie Sie das Attribut selectany verwenden können:

//Richtig - x1 wird initialisiert und ist extern sichtbar
__declspec(selectany) int x1=1;

//Falsch - const ist in C++ standardmäßig statisch, und
//daher ist x2 nicht extern sichtbar (in C ist dies OK,
//da const hier nicht standardmäßig statisch ist)
const __declspec(selectany) int x2 =2;

//Richtig - x3 ist extern const und somit extern sichtbar
extern const __declspec(selectany) int x3=3;

//Richtig - x4 ist extern const und somit extern sichtbar
extern const int x4;
const __declspec(selectany) int x4=4;

//Falsch - __declspec(selectany) wird die uninitialisierten Deklaration von x5 verwendet 
extern __declspec(selectany) int x5;

Siehe auch