구조체와 비슷한 것이 공용체가 있다. 공용체는 서로 다른 데이터형 중에서 한 가지만 보관할 수 있다. 다음을 보자.
union wallet
{
short card;
int picture;
double money;
};
wallet mine;
mine.picture = 2;
mine.money = 99999.9f;
각각 멤버에 넣을 때 디버깅을 통해 구조체 안에 어떤 변수가 들어갔는지 확인해보자.
멤버 중 picture 값을 대입했을 경우에는 picture에 값이 잘 들어가있고 나머지는 쓰레기값이 들어가있다.
그 다음에 money 값을 대입했을 때는, 이전에 넣었던 picture값이 사라졌다.
union의 장점은 한 가지의 데이터만 저장하기 때문에 메모리를 절약할 수 있다. 제일 큰 데이터형의 크기만큼만 차지하면 된다. 위의 코드의 경우에는 double이 제일 크므로, 8만큼 차지한다.