C++/Tips
[C++] Union
메리사츠
2021. 6. 18. 18:30
1. Union
=> Union은 공용체라고 불리며, 구조체와 대부분 동일
=> 모든 멤버 변수가 구조체와는 다르게 하나의 메모리 공간을 공유

union vars
{
char a; // 1byte
int b; // 4byte
}; // 총 크기는 4byte
=> 순서가 Struct처럼 규칙적이지 않고, 다양한 Data를 저장할 수 있도록 설계
=> 크기가 가장 큰 멤버 변수의 크기로 메모리 할당
=> 단점으로썬, 한번에 하나씩 쓰면 괜찮으나, 여러개를 한번에 사용하면 나머지 값은 사용할 수 없음
#include<iostream>
using namespace std;
union vars
{
char a;
int b;
long c;
};
int main()
{
vars var;
var.a = 'c';
var.b = 91;
cout << var.a << endl; // [ (ASCII 91번) 출력 (더 큰 값인 int에 덮어씌워짐
cout << var.b << endl; // 91 출력
return 0;
}