승쨩개발공부
[C++] 공용체 (union) 본문
공용체
사용자 정의 자료형
구조체와 비슷한 형태를 가진다.
모든 멤버 변수들이 하나의 메모리 공간을 공유(쉐어)해서 사용한다.
공용체(union) 정의
union 자료형이름
{
멤버 변수
멤버 변수
멤버 변수
}
구조체(struct) 정의
struct 자료형 이름
{
멤버 변수
멤버 변수
멤버 변수
}
공용체 정의
// 공용체 정의
union uniBox
{
int a;
float b;
};
// 구조체 정의
struct tagBox
{
int a;
float b;
};
선언
tagBox tBox;
uniBox uBox;
초기화
tagBox tBox;
uniBox uBox;
데이터 초기화
tagBox tBox = { 10, 3.14f }; // 가능
uniBox uBox = { 10, 3.14f }; // 불가능
공용체의 메모리 공유 확인
uniBox uBox = {};
uBox.a = 10;
cout << "uBox.a: " << uBox.a << endl; // 10
ubox.b = 3.14f;
cout << "uBox.a: " << uBox.a << endl; // 1078523331
cout << "uBox.b: " << uBox.b << endl; // 3.14
공용체의 크기
멤버 변수 중 크기가 가장 큰 멤버 변수만큼만 할당된다.
cout << sizeof(uniBox) << endl; // 4
'C++' 카테고리의 다른 글
[C++] 레퍼런스 (0) | 2021.11.30 |
---|---|
[C++] 함수 포인터 (0) | 2021.11.30 |
[C++] 열거체(enum) (0) | 2021.11.30 |
[C++] 입출력,스트림,버퍼,경로 (0) | 2021.11.30 |
[C++] 메모리 구조 (0) | 2021.11.30 |