Academic Year: 2022-2023 Class: Programmazione Calcolatori (Class) Created: May 9, 2023 Tag: C MOC Type:Lecture


Union

La Union è una variabile che può contenere un elemento ma il tipo di elemento può cambiare

Sintassi

// Definizione per creazione di un tipo Union
// Union che possa memorizare o un carattere, o un intero, o un float
union nome_union{
	char c_val;
	int i_val;
	float f_val;
} 
// Definizione per una singola variabile
// Union che possa memorizare o un carattere, o un intero, o un float
union {
	char c_val;
	int i_val;
	float f_val;
} u  // u è una variabile di tipo union;

Size di una union

La direzione in memoria della union è la dimensione del del tipo di elemento più grande dichiarato nella union

Esempio Utilizzo

u.i_val = 10; // assegno un valore intero alla variabile i_val
printf("%d", u.i_val); // stampo il valore intero
printf("%c", u.c_val); // provo a stampare il valore carattere 
// c_val non definito (non è detto che sia stampato correttamente)
 
u.c_val = 'a'; // assegno un valore carattere alla variabile c_val
printf("%c", u.c_val); // stampo il valore carattere
printf("%d", u.i_val); // provo a stampare il valore intero
// i_val non definito (non è detto che sia stampato correttamente)