Archiviazione di unioniStorage of Unions

Lo spazio di archiviazione associato a una variabile di unione è lo spazio di archiviazione necessario per il membro di dimensioni maggiori dell'unione.The storage associated with a union variable is the storage required for the largest member of the union. Quando un membro di dimensioni più piccole viene archiviato, la variabile di unione può contenere lo spazio di memoria inutilizzato.When a smaller member is stored, the union variable can contain unused memory space. Tutti i membri vengono archiviati nello stesso spazio di memoria e iniziano allo stesso indirizzo.All members are stored in the same memory space and start at the same address. Il valore archiviato viene sovrascritto ogni volta che un valore viene assegnato a un membro diverso.The stored value is overwritten each time a value is assigned to a different member. Ad esempio:For example:

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.The members of the x union are, in order of their declaration, a pointer to a char value, a char value, and an array of float values. 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.The storage allocated for x is the storage required for the 20-element array f, since f is the longest member of the union. Poiché nessun tag è associato all'unione, il tipo è senza nome o "anonimo".Because no tag is associated with the union, its type is unnamed or "anonymous."

Vedere ancheSee Also

Dichiarazioni di unioneUnion Declarations