S.Tobias said:
4 enumeration constants
I don't think so for enumeration constants.
By "be defined",
I meant have a declaration which is also a definition.
These are the only occurances of "define" that I can find
in relation to enumeration constants in N869.
" An enumerator with = defines its
enumeration constant as the value of the constant
expression. If the first enumerator has no =, the value of
its enumeration constant is 0. Each subsequent enumerator
with no = defines its enumeration constant as the value of
the constant expression obtained by adding 1 to the value of
the previous enumeration constant."
I think they're using the word "define" in it's
standard English meaning, rather than as what
constitutes a "definition" in a C program.
There's no words that say that
the first enumeration constant is defined
if it doesn't have an =, only subsequent members.
Consider:
enum numbers{ONE, TWO};
ONE is defined as zero in the same way that TWO is defined as one,
but there's no words in the standard saying that ONE is "defined"
in any way, except in the standard English way.
I didn't mean to make any jokes, my question was genuine and
I'll ask it in c.s.c. if I don't get an answer here (which
I was going to do anyway).
Until I discovered this in the Standard, I also thought only
functions and objects could be defined, all the rest were
merely (pure) declarations. The distinction seemed natural
to me: declaration is compile-time device, and a definition
causes something to appear in the run-time (well, this is
not entirely true, but... ya know what I mean).
I *do* know what you mean.