Ein Union ist eine spezielle Art von Datentyp, der es ermöglicht, unterschiedliche Datenelemente im selben Speicherbereich zu speichern. Im Gegensatz zu Strukturen (structs), bei denen jeder Member seinen eigenen Speicherplatz hat, teilen alle Member eines Unions denselben Speicherplatz. Das bedeutet, dass nur ein Member des Unions gleichzeitig gültige Daten enthält. Die Syntax zur Definition eines Union-Datentyps sieht folgendermaßen aus.
union MyUnion {
int intValue;
float floatValue;
char charValue;
};
union MyUnion u;
u.intValue = 42; // Ein Member setzen
printf("%d\n", u.intValue); // Wert von intValue ausgeben
Hier ist MyUnion der Name des Union-Datentyps. Du kannst so viele Mitglieder definieren, wie du möchtest, aber denke daran, dass immer nur ein Mitglied gleichzeitig gültige Daten enthält. Du kannst also entweder ein int oder ein float oder einen char speichern, aber keine 2 Member gleichzeitig.