MenüHomeBlogMagic

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:

Permalink: https://adirmeier.de/Blog/ID_317
Tags: Blog, c++, enum, examplevon am 2020-05-12