Re: Size of enum‏

Jonathan Wakely jwakely.gcc@gmail.com
Sun Feb 5 21:13:00 GMT 2012


2012/2/5 David Brown :
>
> Enum types in C++ can be any integer type big enough to cover the required
> range.  I think most C++ compilers use the smallest integer type that covers
> the range.

With the three C++ compilers I tried enums are int-sized for
compatiblity reasons, so that enums declared in a header file included
by C code and C++ code will agree on the type layout.

C++11 allows you to fix the underlying type of an enum, to use a specific size:

enum E : unsigned char { E1, E2 };

The syntax isn't valid in C, so there's no reason to use the same
layout as a C enum would.



More information about the Gcc mailing list