435 If more than one declaration of a particular identifier is visible at any point in a translation unit, the syntactic context disambiguates uses that refer to different entities.
436 Thus, there are separate name spaces for various categories of identifiers, as follows:
437 label names (disambiguated by the syntax of the label declaration and use);
438
the tags of structures, unions, and enumerations
(disambiguated by following any24) of the keywords
439 the members of structures or unions;
440
each structure or union has a separate name space for its members
(disambiguated by the type of the expression used to access the
member via the
441 all other identifiers, called ordinary identifiers (declared in ordinary declarators or as enumeration constants).
442
Forward references:
enumeration specifiers (6.7.2.2), labeled statements (6.8.1),
structure and union specifiers (6.7.2.1), structure and union members
(6.5.2.3), tags (6.7.2.3), the
443 23) As specified in 6.2.1, the later declaration might hide the prior declaration.
444 24) There is only one name space for tags even though three are possible.
Next
Created at: 2005-06-29 02:18:54
The text from WG14/N1124 is copyright © ISO