In ANSI-C, enumerations have the type of int. In this implementation they have to be smaller than or equal to int.
sizeof(char) <= sizeof(short) sizeof(short) <= sizeof(int) sizeof(int) <= sizeof(long) sizeof(long) <= sizeof(long long) sizeof(float) <= sizeof(double) sizeof(double)<= sizeof(long double)