[c언어] 공용체 데이터 타입
공용체(Union)란?
공용체(Union)는 c언어에서 다양한 데이터 타입을 하나의 메모리 블록으로 정의하는 데 사용됩니다. 이를 통해 서로 다른 자료형을 하나의 변수로 처리할 수 있습니다.
공용체(Union) 데이터 타입 정의
공용체는 서로 다른 데이터 타입을 하나의 메모리 블록으로 정의합니다. 다음은 구조체와 공용체간의 차이를 나타낸 예시입니다.
struct example_struct {
int integer;
double floating;
};
union example_union {
int integer;
double floating;
};
구조체(structure)는 각 멤버 변수가 별도의 메모리 공간을 차지하지만, 공용체(union)는 모든 멤버 변수가 동일한 메모리 영역을 공유합니다.
공용체(Union)의 활용
공용체의 가장 큰 특징은 모든 멤버 변수가 같은 메모리를 공유한다는 것입니다. 이는 메모리 공간을 아낄 수 있고, 다양한 데이터 타입을 하나의 변수로 관리할 수 있는 장점을 가지고 있습니다.
union example_union data;
data.integer = 10;
printf("Integer: %d, Floating: %f", data.integer, data.floating);
위의 예시에서, data.integer
와 data.floating
은 동일한 메모리를 공유하고 있기 때문에 값이 상호 연동됩니다.
공용체(Union) 사용 시 주의사항
공용체는 각 멤버 변수가 메모리를 공유하기 때문에, 한 번에 하나의 값만을 저장할 수 있습니다. 또한, 멤버 변수의 크기와 상대적 위치에 따라 메모리 정렬에 주의해야 합니다.
모든 멤버가 동일한 메모리를 공유하고 있기 때문에, 하나의 멤버를 변경하면 그에 연동된 다른 멤버도 영향을 받을 수 있습니다.
참고 문헌:
- https://dojang.io/mod/page/view.php?id=436
이제 공용체 데이터 타입에 대한 기본적인 내용을 알아보았습니다.