c / intermediate
Snippet
Speichereffizienz mit Unions
Eine Union ermöglicht es, verschiedene Datentypen im selben Speicherbereich zu speichern. Die Größe der Union wird durch ihr größtes Element bestimmt. Dies ist besonders in der Systemprogrammierung nützlich, um Datenstrukturen zu überlagern oder auf bestimmte Teile eines Speicherworts zuzugreifen.
snippet.c
1
2
3
4
5
6
7
union HardwareRegister {uint32_t full_word;struct {uint16_t lower_half;uint16_t upper_half;} parts;};
Erklärung
1
union HardwareRegister
Definiert eine Union, bei der alle Elemente an der gleichen Speicheradresse beginnen.
2
uint32_t full_word;
Greift auf den gesamten 32-Bit-Speicherblock als eine einzelne Ganzzahl zu.