__declspec(selectany)
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;