Archiviazione di unioni

Lo spazio di archiviazione associato a una variabile di unione è lo spazio di archiviazione necessario per il membro di dimensioni maggiori dell'unione. Quando un membro di dimensioni più piccole viene archiviato, la variabile di unione può contenere lo spazio di memoria inutilizzato. Tutti i membri vengono archiviati nello stesso spazio di memoria e iniziano allo stesso indirizzo. Il valore archiviato viene sovrascritto ogni volta che un valore viene assegnato a un membro diverso. Ad esempio:

union         /* Defines a union named x */  
{  
    char *a, b;  
    float f[20];  
} x;  

I membri dell'unione x sono, nell'ordine di dichiarazione, un puntatore a un valore char, un valore char e una matrice di valori float. Lo spazio di archiviazione allocato per x è lo spazio di archiviazione necessario per la matrice fdi 20 elementi, poiché f è il membro più lungo dell'unione. Poiché nessun tag è associato all'unione, il tipo è senza nome o "anonimo".

Vedere anche

Dichiarazioni di unione