#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++ 파일입출력 (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 |