Dla C++ przed rokiem 2011 standard podaje, że wyliczenia mogą mieć dowolny rozmiar, od bajtu do długiego. Ale w praktyce wygląda na to, że większość kompilatorów tworzy je jako 4-bajtowe.Rozmiar wymieniacza * w praktyce *
Tak, w praktyce zrobić jakieś mało aktualne kompilatory nie zrobić ich ints?
I wydaje mi się, że muszę wyjaśnić, że nie robię nic dziwnego, jak wyrazy> 2^31. Po prostu proste wyliczenia. A w systemach 32- lub 64-bitowych moje oprogramowanie nie będzie działać na 16 bitach!
'int' niekoniecznie jest 4 bajty. – user657267
'enum/* class */MyEnum: unsigned char {...};'. W kompilatorze C99 jeden z moich klientów zgłosił błąd, który sprowadził się do niepowiązanego modułu przyjmującego rozmiar enum = sizeof UINT32. –
... a bajt niekoniecznie musi składać się z 8 bitów. –