Espaces de nommage des structures
Remonter à Structures - Index
Les noms des sélecteurs de structures appartiennent à l'espace de nommage des sélecteurs d'unions et d'énumérations (cependant, en C++, enums dans une structure appartient à un espace de nommage différent). La conséquence est que les sélecteurs doivent avoir un nom unique dans une même portée. Toutefois, ces noms ne doivent pas obligatoirement être différents des identificateurs figurant dans les trois autres espaces de nommage : l'espace de nommage des étiquettes, celui des membres et l'espace de nommage simple (celui des variables, fonctions, typedef et énumérateurs).
Les noms de membres dans une structure ou une union donnée doivent être uniques, mais ils peuvent être identiques à ceux figurant dans d'autres structures ou unions. Par exemple :
goto s;
.
.
.
s: // étiquette
struct s { // OK: espaces de nommage différents pour les sélecteurs et les étiquettes
int s; // OK: espaces de nommage différents pour les sélecteurs, les étiquettes et les membres
float s; // ILLEGAL: nom de membre répété
} s; // OK: espace de nommage différent pour les variables Dans C++, cela ne peut
// être fait que si s n'a pas de constructeur.
union s { // ILLEGAL: nom de sélecteur répété
int s; // OK: nouvel espace de nommage des membres
float f;
} f; // OK: espace de nommage des variables
struct t {
int s; // OK: espace de nommage membre différent
.
.
.
} s; // ILLEGAL: nom var répété