Die vordefinierte Größe von Enum-Klassen
Heute wollte ich mir mal die enum Klassen von C++ genauer anschauen.
Da ich mir nicht sicher war, ob der Compiler sich immer an die vorgaben hält, die bei der Klassendefintion angegeben wird, habe ich ein kleines Testprogramm geschrieben:
#include <stdio.h>
#pragma pack(1)
enum class E8 : unsigned char
{
Unknown
};
enum class E16 : unsigned short
{
Unknown
};
enum class E32 : unsigned long
{
Unknown
};
enum class E64 : unsigned long long
{
Unknown
};
#pragma pack()
int main()
{
printf("E8 : %zu\r\n", sizeof(E8));
printf("E16: %zu\r\n", sizeof(E16));
printf("E32: %zu\r\n", sizeof(E32));
printf("E64: %zu\r\n", sizeof(E64));
}
Wer den Code online laufen lassen will, kann das hier machen: