Was ist Union?

Typ in C, dessen Member überlappend ab derselben Adresse liegen. Deklariert wird sie etwa als union { uint32_t w; uint8_t b[4]; } u;, und ihre Größe entspricht der des größten Members (aufgerundet auf ein Vielfaches des Alignments). Einen sinnvollen Wert hat jeweils nur ein Member; verwendet wird sie, um denselben Speicher als anderen Typ zu betrachten oder um Speicher zu sparen, wenn Daten in einer von mehreren Formen vorliegen. Was man liest, wenn man u.w schreibt und u.b[0] liest, hängt von der Endianness ab.

Japanische Bezeichnung: 共用体

„Union“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Programmiersprache C.

Fachgebiet: Grundlagen der Programmiersprache C

„Union“ in den Erläuterungen

Fragen mit „Union“ (1)

  1. uint32_t sei ein vorzeichenloser 32-Bit- und uint8_t ein vorzeichenloser 8-Bit-Ganzzahltyp, und die Umgebung sei Little-Endian. Welche Ausgabe erzeugt der obige Code bei der Ausführung?

Verwandte Begriffe

Ausrichtung und Auffüllung (Alignment und Padding) Bitfeld Dangling Pointer (hängender Zeiger) Dynamische Speicherreservierung Funktionszeiger Integer-Promotion Makro Präprozessor Pufferüberlauf (Buffer Overflow) Speicherleck (Memory Leak)

Zur Glossarübersicht