Why can two different enum enumeration-constants have the same integer value?

Why can two different enum enumeration-constants have the same integer value?

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,
};

排查问题的话,只要搜一下,是不是重复的赋值

原文地址:https://www.cnblogs.com/chucklu/p/12589784.html