In C, the size of an enumeration equals the sizeof(int). In C++, the underlying type for an enumeration is not necessarily an int–it can be smaller. Furthermore, if an enumerator’s value is too large to be represented as an unsigned int, the implementation is allowed to use a larger unit. For example:
enum Distance{ Jove = 5000000000, //stored in a 64-bit integer Moon =300000 };