__declspec(selectany)

De Appmethod Topics
Aller à : navigation, rechercher

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;

Voir aussi