C++ Unions Basic Union Features


Unions are a specialized struct within which all members occupy overlapping memory.

union U {
    int a;
    short b;
    float c;
U u;

//Address of a and b will be equal
(void*)&u.a == (void*)&u.b;
(void*)&u.a == (void*)&u.c;

//Assigning to any union member changes the shared memory of all members
u.c = 4.f;
u.a = 5;
u.c != 4.f;