Canvas of Bliss

C++ 공용체,

2020. 10. 16. 15:00

#include <iostream>

using namespace std;

// 공용체 정의
union uniBox
{
short a;
int b;
};

struct tagBox
{
short a;
int b;
};


union uniTest
{
int a;
float b;
};

void main()
{
// 공용체란?
// 사용자 정의 자료형이다.

// 공용체의 형태
/*
union 자료형이름
{

멤버 변수

}
*/


//// 공용체 선언
//tagBox tBox;
//uniBox uBox;

//tagBox tBox = {};
//uniBox uBox = {};

//tagBox tBox = { 10, 20 };
//uniBox uBox = { 10, 20 }; // 불가능

// 구조체와 공용체의 차이점
// 구조체는 멤버 변수로 선언한 모든 변수들을 메모리에 등록시킨다.
// 공용체는 단 하나의 멤버 변수만 메모리에 등록한다!
// -> 멤버 변수 중 크기가 가장 큰 변수만큼만 메모리를 할당한다!
// -> 할당된 메모리 공간을 같이 사용한다.


//// 공용체 멤버 변수들의 주소 확인
//uniBox uBox = {};

//cout << &(uBox.a) << endl;
//cout << &(uBox.b) << endl;



//uniBox uBox = {};

//uBox.a = 10;
//cout << uBox.a << endl;
//cout << "------------------------------" << endl;
//uBox.b = 20;
//cout << uBox.a << endl;



uniTest uTest = {};

uTest.b = 3.14f;
cout << uTest.a << endl;



}

'개발 공부 > C++' 카테고리의 다른 글

C++ 파일입출력  (0) 2020.10.08
C++ 입출력 스트림버퍼  (0) 2020.10.08
C++ Text RPG  (0) 2020.10.08
C++ 동적할당  (0) 2020.10.08
C++ 성적표 예제  (0) 2020.10.08

이 글을 공유합시다

facebook twitter kakaoTalk kakaostory naver band