공용체
다양한 자료형을 동시에 사용할 수 있는 자료형으로 구조체와 비슷한 선언 방식으로 만든다.
또한 다양한 자료형을 하나의 메모리 공간에 저장할 수 있기 때문에 메모리 절약에 유용하나 공용체의 멤버 변수중 하나를 수정하면 다른 멤버 변수가 함께 수정된다.
이 때 메모리 공간은 가장 큰 크기를 가지는 멤버 변수의 크기만큼 메모리를 할당한다.
공용체 예시
// union 키워드를 사용
union data
{
int i;
float f;
char str[20];
};
int main()
{
// 공용체 변수 선언
union data data1;
// 공용체 멤버에 값 할당
data1.i = 65;
// 공용체 멤버 변수들의 값 확인
printf("data1.i의 값: %d\n", data1.i);
printf("data1.f의 값: %f\n", data1.f);
printf("data1.str의 값: %s\n", data1.str);
return 0;
}
// 값 출력 결과
data1.i의 값: 65
data1.f의 값: 0.000000
data1.str의 값: A

자료형은 들어온 값에 대해서 어떻게 해석할지에 대한 형이므로 같은 메모리 공간을 공유하는
공용체의 멤버 변수 i에 65를 넣었을 때 각 자료형들의 해석 결과이다.
int 4Byte 정수는 65
float 4Byte 실수는 9.108e-44
char 1Byte 문자는 "A" 로 => ASCII 문자 인코딩에 따라 65는 "A"로 되어 있다.
'C, C++' 카테고리의 다른 글
| 17. 열거형 (0) | 2023.06.08 |
|---|---|
| 16. 파일 입출력 (0) | 2023.06.07 |
| 14. 구조체 (0) | 2023.06.04 |
| 13. 배열 포인터 (0) | 2023.06.03 |
| 12. 다차원 배열 (0) | 2023.06.02 |