승쨩개발공부

[C++] 공용체 (union) 본문

C++

[C++] 공용체 (union)

SeungHyune 2021. 11. 30. 21:43

공용체

사용자 정의 자료형

구조체와 비슷한 형태를 가진다.

모든 멤버 변수들이 하나의 메모리 공간을 공유(쉐어)해서 사용한다.

 

공용체(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