Le unioni

Le unioni sono tipi di dato derivato costituite da un insieme di elementi, allocati in memoria in modo sovrapposto.

Il loro funzionamento é molto simile a quello delle strutture con la differenza però che mentre per la strutture viene riservata una congrua quantità di memoria necessaria alla memorizzazione di tutti i loro membri, le unioni riservano solo la quantità di memoria necessaria al più capiente dei suoi membri. Ne consegue che un’unione può contenere, alternativamente, solo 1 dei membri dichiarati.

La dichiarazione di un unione avviene attraverso la keyword union, in questo modo:

union tag_unione {
    int membro1;
    long membro2;
} identificatore_unione;

//La struttura avrà dimensioni pari al tipo di variabile più grande, cioè long

L’accesso, la scrittura, o la manipolazione dei membri avviene allo stesso modo delle strutture. Ne consegue che:

  • le unioni possono essere copiate
  • si possono definire con typedef
  • si possono dichiarare senza nome
  • possono essere annidate
  • possono contenere array e possono essere contenute in array
  • possono essere puntate
  • possono essere argomenti di funzione o return
  • possono avere membri anonimi
  • possono essere campi di bit

Casi d’uso

Le unioni offrono il vantaggio di consentire un certo risparmio di memoria e risorse come anche quello di definire un tipo che può contenere tipi di dato differenti.

Luca Scandroglio

Sono un consulente tecnico informatico, un web designer e uno sviluppatore italiano. Aiuto le aziende a dotarsi degli strumenti tecnologici e digitali per superare le sfide del mercato di oggi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *