#include<stdio.h>
union UMemory
{
char c;
int i;
double d;
};
void main()
{
//공용체(Union)
union UMemory mem;
printf("mem: %p\n", &mem);
mem.c = 'a';
printf("mem.c: %c (%p)\n", mem.c, &mem.c);
mem.i = 123;
printf("mem.i :%d (%p)\n", mem.i, &mem.i);
mem.d = 3.14;
printf("mem.d: %lf (%p)\n", mem.d, &mem.d);
printf("mem.i :%lf (%p)\n", mem.i, &mem.i);
printf("mem.d: %d (%p)\n", mem.d, &mem.d);
printf("mem.i :%d (%p)\n", mem.i, &mem.i);
printf("mem Size: %d byte\n", sizeof(mem));
}
공용체는 구조체와 비슷하지만
메모리 공간을 하나만 만들어 공유하는 특징을 지니고 있다
그래서 윗 예시처럼
값을 입력 해서 사용 후 다른 값을 입력한다면 새로 입력한 값이 저장되는 구조이다.
거의 사용되지 않지만 메모리 공간을 효율적으로 이용할 수 있기에 알아두고 필요시 활용을 하면 좋은 프로그램이 될 것이다.
'프로그래밍 언어 > C' 카테고리의 다른 글
열거형(Enum, Enumeration) (0) | 2024.08.20 |
---|---|
구조체(Structure) (0) | 2024.08.20 |
다차원 배열(Multi-Dimensional Array) (0) | 2024.08.19 |
정적/동적 메모리 할당(Memory Allocate) (0) | 2024.08.16 |
문자열 함수 활용 feat)예외처리 (0) | 2024.08.14 |