__declspec(selectany)
Remonter à Liste alphabétique des mots clés - Index
Catégorie
Modificateurs, Extensions des mots clés, Spécificateurs de classe de stockage
Syntaxe
__declspec( selectany ) declarator
Un élément de données globales peut normalement n'être initialisé qu'une fois dans une application ou une bibliothèque. Cet attribut peut être utilisé dans l'initialisation des données globales définies par des en-têtes, lorsque le même en-tête apparaît dans plusieurs fichiers source.
Remarque : Cet attribut ne peut être appliqué qu'à l'initialisation réelle des éléments de données globales qui sont visibles de façon externe.
Ce code montre comment utiliser l'attribut selectany :
//Correct - x1 est initialisé et visible de façon externe
__declspec(selectany) int x1=1;
//Incorrect - une constante est par défaut statique en C++, donc
//x2 n'est pas visible de façon externe (C'est correct en C, car
//une constante n'est pas statique par défaut en C)
const __declspec(selectany) int x2=2;
//Correct - x3 est une constante externe, donc visible de façon externe
extern const __declspec(selectany) int x3=3;
//Correct - x4 est une constante externe, donc visible de façon externe
extern const int x4;
const __declspec(selectany) int x4=4;
//Incorrect - __declspec(selectany) est appliqué à la déclaration non initialisée de x5
extern __declspec(selectany) int x5;