Wat is Union?

Een type in C waarvan alle members op hetzelfde adres beginnen en elkaar overlappen. Een union wordt gedeclareerd zoals in union { uint32_t w; uint8_t b[4]; } u; en de grootte is die van de grootste member (naar boven afgerond op een veelvoud van de uitlijning). Er heeft telkens maar één member een zinvolle waarde; unions worden gebruikt om hetzelfde geheugen als verschillende typen te bekijken, en om geheugen te besparen als gegevens een van meerdere vormen aannemen. Wie naar u.w schrijft en u.b[0] leest, krijgt een resultaat dat van de endianness afhangt.

Japanse benaming: 共用体

“Union” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Basis van programmeren in C.

Vakgebied: Basis van programmeren in C

“Union” in de toelichting

Vragen met “Union” (1)

  1. uint32_t en uint8_t zijn integertypen zonder teken van 32 en 8 bits, en de omgeving is little-endian. Wat is de uitvoer als de bovenstaande code wordt uitgevoerd?

Verwante termen

Bitveld (bit-field) Bufferoverloop (buffer overflow) Dangling pointer Dynamische geheugentoewijzing Functiepointer Geheugenlek (memory leak) Integerpromotie (integer promotion) Macro (#define) Ongedefinieerd gedrag (undefined behavior) Pointer

Naar de woordenlijst