Per C++ precedente al 2011, lo standard dice che le enumerazioni possono essere di qualsiasi dimensione, da byte a lunghe lunghe. Ma in pratica sembra che la maggior parte dei compilatori li realizzi, 4 byte.Dimensioni Enum * in pratica *
Quindi, in pratica i compilatori vagamente attuali non li fanno?
E mi sembra di aver bisogno di chiarire che non sto facendo nulla di strano, come enum> 2^31. Solo semplici enumerazioni. E su sistemi a 32 o 64 bit, il mio software non funzionerà su 16 bit!
'int' non è necessariamente 4 byte. – user657267
'enum/* class */MyEnum: unsigned char {...};'. Nel compilatore C99, uno dei miei clienti ha riportato un errore che si è ridotto a un modulo non correlato assumendo la dimensione di enum = sizeof UINT32. –
... e un byte non è necessariamente 8 bit. –