반응형
728x170
구조체랑 비슷하지만 다르다.
쉽게 말하자면 Type을 여러개 가지고 있는 변수라고 생각하면 되겠다.
union one4all
{
int int_val;
long long_val;
double double_val;
};
//구조체와 선언 방법이 비슷하다.
다만 one4all 이라는 공용체 자체는 한 번에 하나의 타입만 가질 수 있다.
int의 값도 저장, long 값도 저장, double의 값도 저장하지만 한 번에 하나의 상태만 가진다.
이 공용체의 크기는 해당 타입 중에서 가장 큰 타입의 공간만큼 차지한다.
long이 제일크다면 long의 크기를 가지는 공용체가 되는 것이다.
**다시 말하면 이 공용체는 여러 가지 데이터를 쓰게되지만
이들을 동시에 사용할 일은 없을 때 메모리를 절약해주는 역할이다.
예를 들어 1번 부품이 있고 하위 부품은 1.1이라고 할 때
부품 번호가 1도 되고 1.1도 되어야 할 때
int num1
float num1
두 변수를 그냥 계속 구조체에 가지고 있는 것보다
둘 중 하나의 큰 변수에 대해서 공용체를 만들어서 메모리를 절약하는 방법이다.
아래와 같은 느낌이다.
int + float > max(int, float)
728x90
반응형
그리드형
'프로그래밍 지식 > C++' 카테고리의 다른 글
C++문법/ 생성자와 소멸자 , Constructor & Destructor (0) | 2021.11.24 |
---|---|
C++문법 / 문자열 함수를 위한 cctype (0) | 2021.11.17 |
C++문법 / 포인터, 메모리 해제 (0) | 2021.11.10 |
C++문법/ 열거체, Enum (0) | 2021.11.09 |
C++ 문법/ 변수, 배열 초기화 [C++] (0) | 2021.11.09 |