This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Size of enumâ
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.