Für C++ vor 2011 besagt der Standard, dass Enums eine beliebige Größe haben können, von Byte bis lang. Aber in der Praxis scheint es, dass die meisten Compiler sie zu 4 Bytes machen.Enum-Größe * in der Praxis *
Also, in der Praxis irgendwelche vage aktuelle Compiler machen sie nicht ints?
Und ich muss klarstellen, dass ich nichts Seltsames mache, wie Enums> 2^31. Nur einfache enums. Und auf 32 oder 64 Bit Systemen läuft meine Software nicht auf 16 Bit!
'int' sein ist nicht unbedingt 4 Byte. – user657267
'enum/* class */MyEnum: unsigniertes Zeichen {...};'. Im C99-Compiler meldete einer meiner Kunden einen Fehler, der auf ein nicht verwandtes Modul überging, wobei die Größe von enum = Größe von UINT32 angenommen wurde. –
... und ein Byte ist nicht unbedingt 8 Bits. –