본문 바로가기

C, C++

공용체

공용체는 구조체와 달리 각 멤버들이 메모리 위치를 공유합니다.

공용체를 생성할 때는 앞에 union을 붙입니다.

union A {
	short a;//위치 0바이트
    int b;//위치가 2바이트가 아니라 0바이트 입니다.
};

A a;
a.a = 4;
a.b = 8;//a와 b맴버는 같은 메모리 위치에 있으므로 a의 값도 바뀌게 됩니다.

공용체의 크기는 공용체의 각 멤버들 중 가장 큰 멤버의 크기가 됩니다.

 

공용체의 이름을 지정하지 않을 수 있는데 이러면 각 멤버를 변수 생성해서 접근하는 것이 아니라 그냥 접근할 수 있습니다.

union {
	int c;
    unsigned d;
};

c=-3; 
d=5;

추가 : 공용체도 구조체와 마찬가지로 C언어에서는 공용체 변수를 정의할 때 앞에 union을 붙여야합니다.

'C, C++' 카테고리의 다른 글

변수 종류  (0) 2019.12.03
포인터  (0) 2019.12.02
구조체 정렬 및 원리  (0) 2019.11.29
비트 구조체  (0) 2019.11.28
구조체  (0) 2019.11.27