jejones@mcrware.UUCP (James Jones) (01/11/91)
3.1.2.3 seems to say that there are four name spaces, the last-named one being a "none of the above" name space. 3.8.3 says that there is one name space for macro names. Is the name space mentioned in 3.8.3 one of the four listed in 3.1.2.3? (It's reasonable that it should be separate, since the standard is intended not to rule out a separate preprocessor, but I'm trying to figure out what the standard means.) Macro names also appear not to fall in any of the scope categories that are listed in 3.1.2.1 (aside from labels, the scopes in 3.1.2.1 are all defined in terms of the declarator in which the identifier appears, so they can't apply to a macro name, which is not declared as such; 3.8.3.5 also states that block structure is irrelevant to the scope of macro definitions). Given all this, are the identifiers named in 4.1.2.1 that don't begin with __ or _[A-Z] (p.98, lines 7-8) reserved for use as macro names or are they not? James Jones
gwyn@smoke.brl.mil (Doug Gwyn) (01/12/91)
In article <4640@mcrware.UUCP> jejones@mcrware.UUCP (James Jones) writes: >Given all this, are the identifiers named in 4.1.2.1 that don't begin with >__ or _[A-Z] (p.98, lines 7-8) reserved for use as macro names or are they not? I frankly don't understand why there would be any question about this. Macro names are ordinary identifiers, as is obvious from 3.1.2.3. The scope of macro definitions is specified in 3.8.3.5; the phases of translation (2.1.1.2) ensure that 3.1.2.1 is not relevant for macro names.