Mail Archives: djgpp/2015/06/06/03:45:12
"Eli Zaretskii (eliz AT gnu DOT org)" <djgpp AT delorie DOT com> wrote:
> > From: Martin Str|mberg <ams AT ludd DOT luth DOT se>
> > Date: Fri, 5 Jun 2015 12:29:43 +0000 (UTC)
> >
> > But, IIRC, C99 (or even perhaps C89) reserved any symbol starting with E.
> Where do you see such language in C99? I don't see it, and neither do
> I see it in C11. But maybe I'm missing something, it's not like I've
> read the entire document top to bottom.
In C99 (which is what I have):
7.1.3 Reserved identifiers, paragraph 1, third ---:
"Each macro in the following subclauses (including future library
directions) is reserved for use as specified if any of the associated
headers is included, unless explicitly stated otherwise (see 7.1.4)."
(I don't see anything in 7.1.4 about reserved identifiers. It's about
calling library functions with illegal values, having library
functions as macros as well as functions, and the possibility to
declare library functions yourself.)
7.26 Future library directions
7.26.3 Errors <errno.h>
"Macros the begin with E and a digit or E and an uppercase letter may
be added to the declarations in the <errno.h> header."
Thus anything "E[0-9A-Z]*" is reserved if errno.h is included.
In addition there's:
7.5 Errors <errno.h>, paragraph 4:
"Additional macro definitions, beginning with E and a digit or E and
an uppercase, may also be specified by the implementation."
So even if 7.1.3 and 7.26.3 didn't exist (or you object to the fact
the some of the text is in parentheses), we are allowed to add our own
"E[0-9A-Z]*" if we wanted.
Because the possibily exists, they are "reserved" (you can't count on
that there is _not_ a certain "E[0-9A-Z]*").
--
MartinS
- Raw text -