공용 구조체의 저장소Storage of Unions

공용 구조체 변수와 연결된 저장소는 공용 구조체의 최대 멤버에 필요한 저장소입니다.The storage associated with a union variable is the storage required for the largest member of the union. 작은 멤버를 저장하면 사용하지 않는 메모리 공간에 공용 구조체 변수에 포함될 수 있습니다.When a smaller member is stored, the union variable can contain unused memory space. 모든 멤버가 같은 메모리 공간에 저장되고 같은 주소에서 시작됩니다.All members are stored in the same memory space and start at the same address. 값이 다른 멤버에 할당될 때마다 저장된 값을 덮어씁니다.The stored value is overwritten each time a value is assigned to a different member. 예:For example:

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

x 공용 구조체의 멤버는 선언 순서대로 char 값의 포인터, char 값, 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. x는 공용 구조체의 가장 긴 멤버이므로 f에 할당된 저장소는 요소가 20개인 배열 f에 필요한 저장소입니다.The storage allocated for x is the storage required for the 20-element array f, since f is the longest member of the union. 공용 구조체에 연결된 태그가 없으므로 해당 형식에 이름이 없거나 "익명"입니다.Because no tag is associated with the union, its type is unnamed or "anonymous."

참고 항목See Also

공용 구조체 선언Union Declarations