In C language, what can the enumeration value of enum be? Must it be of type int?
Enumeration declaration can explicitly declare byte, sbyte, short, ushort, int, uint, long or ulong types as corresponding base types. An enumeration declaration that does not explicitly declare the underlying type means that the corresponding underlying type is int.