I know that if I defined an enum weekday like this:
enum weekday {
MON,
TUE,
WED,
THU,
FRI,
};
Then, MON would internally e
C enums are "really" integers -- not just because they happen to be implemented that way, but because the standard defines enum types to have integer values. So the value of today
is "really" 0. All that has happened is that you've created two different names for the value 0.
I suppose then that the answer to "is today MON or TUE" is "yes" ;-)
The language doesn't stop you because occasionally it's useful for an enum to have multiple names for the same value. For example:
enum compression_method {
COMP_NONE = 0,
COMP_LOW = 1,
COMP_HIGH = 2,
COMP_BEST = 2,
COMP_FASTEST = 0,
};