74. C++ union 사용법

74. C++ union 사용법

1. 개요

1.1 문서 개요

이 문서는 C++에서 union의 개념과 선언 방식, 그리고 사용법에 대해 정리합니다. union은 여러 멤버가 같은 메모리 공간을 공유하는 특수한 사용자 정의 자료형입니다.

2. 내용

2.1 union의 정의와 메모리 구조

2.1.1 선언 예시

union Data {
    int i;
    float f;
    char c;
};

2.1.2 메모리 구조

모든 멤버는 동일한 메모리 공간을 공유하므로, 한 시점에 하나의 값만 저장 가능하며, 가장 큰 멤버 크기만큼 메모리를 차지합니다.

2.2 union의 사용 예시

Data d;
d.i = 100;
std::cout << d.i << std::endl;

d.f = 3.14f;
std::cout << d.f << std::endl;

2.3 union의 제한 사항

  • 한 번에 하나의 멤버만 유효
  • 마지막으로 대입한 멤버만 유효하게 접근 가능
  • 구조체나 클래스와 달리 타입 안정성(type safety)이 낮음

2.4 익명 union

C++에서는 익명 union도 정의할 수 있으며, 구조체 내에 삽입 가능함

struct Mixed {
    union {
        int i;
        float f;
    };
    char label;
};

이 경우 ifMixed 객체에서 직접 접근할 수 있습니다.

3. 마무리

union은 메모리 절약을 위해 특정 상황에서 사용되며, 여러 데이터 타입을 같은 메모리 공간에 저장하고자 할 때 유용합니다. 단, 사용 시 데이터 손상 위험과 타입 관리에 주의가 필요합니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

error: Content is protected !!
위로 스크롤