C Union

Da Andreabont's Wiki.

In C una union è una struttura dati che può contenere più variabili, ma può valorizzarne solo una per volta. E' così pensata per ottimizzare lo spazio occupato. Una union di 3 interi ad esempio allocherà spazio solo per 1 intero. Essendo possibile dichiarare tipi diversi la union allocherà lo spazio minimo necessario per contenere il tipo di variabile più grosso.

Esempio

union Data {
   int i;
   float f;
   char str[20];
};

Accesso alla union (notare che si valorizza solo una variabile per volta, dato che un nuovo assegnamento sovrascrive qualsiasi assegnamento precedente)

int main() {

   union Data data;        

   data.i = 10;
   printf("data.i : %d\n", data.i);
   
   data.f = 220.5;
   printf("data.f : %f\n", data.f);
   
   strcpy( data.str, "C Programming");
   printf("data.str : %s\n", data.str);

}