Signedness of enum in C/C99/C++/C++x/GNU C/GNU C99
Is enum type signed or unsigned? Is the Signedness of enums differ in C/C99/ANSI C/C++/C++x/GNU C/ GNU C99? Thanks An enum is guaranteed to be represented by an integer, but the actual type (and its signedness) is implementation-dependent. You can force an enumeration to be represented by a signed type by giving one of the enumerators a negative value: enum SignedEnum { a = -1 }; In C++0x, the underlying type of an enumeration can be explicitly specified: enum ShortEnum : short { a }; (C++0x also adds support for scoped enumerations) For completeness, I'll add that in The C Programming