C언어: 공용체 (Union)
다른 타입 변수가 같은 메모리 영역을 공유
문법은 구조체와 유사
초기화는 멤버 하나만 가능
쉽게 말해서 여러 가능한 타입 중 하나만 선택적으로 활성화가 되는 변수다.
활용) 공간 절약, 타입이 섞인 자료구조
union 내 structure
union 내의 여러 structre가 같은 타입, 같은 순서로 배치된 변수를 가질 때, 그 변수들은 동시에 정의 및 접근이 가능하다.
Union 단점 보완
-
단점
현재 어떤 타입의 값이 valid 한지 알기 힘듦
-
해결법
structure with an embedded union 사용함으로써 해결
typedef struct {
int kind;
union {
int i;
doue d;
} u;
} Number;
kind
는 union이 사용할 멤버 타입을 명시한다.
여기서 kind
역할하는 변수를 tag field 라고 한다.