[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.integerdata.floating은 동일한 메모리를 공유하고 있기 때문에 값이 상호 연동됩니다.

공용체(Union) 사용 시 주의사항

공용체는 각 멤버 변수가 메모리를 공유하기 때문에, 한 번에 하나의 값만을 저장할 수 있습니다. 또한, 멤버 변수의 크기와 상대적 위치에 따라 메모리 정렬에 주의해야 합니다.

모든 멤버가 동일한 메모리를 공유하고 있기 때문에, 하나의 멤버를 변경하면 그에 연동된 다른 멤버도 영향을 받을 수 있습니다.


참고 문헌:

이제 공용체 데이터 타입에 대한 기본적인 내용을 알아보았습니다.