공용체의 문법적인 형태는 구조체와 비슷하다. 즉, 사용 방법이 유사하다. 하지만 전혀 다른 특징을 가진다.

공용체는 변수가 사용하는 메모리 공간이 중첩된다. 따라서 공용체의 멤버 변수는 한 번에 하나만 사용할 수 있다.

흔히들 메모리를 공유한다고 표현한다.


#include <stdio.h>

union test
{
    int num1;
    float num2;
};

int main()
{
    union test T;
    
    T.num1=0;
    T.num2=1.1;

    printf("T.num1 = %d\n",T.num1);
    printf("T.num2 = %f\n",T.num2);

    return 0;
}


 위 코드에서 멤버 변수가 사용하는 실제 메모리의 모습은 아래와 같다.


1000번지        1001        1002        1003

 num1

num2


 출력 값을 보면 num1이 0으로 나오지 않는다. 그 이유는 먼저 num1을 0으로 초기화 했지만 그 후 num2에 1.1을 대입하면서 중첩되었기 때문이다.

'프로그래밍 > Daily Coding' 카테고리의 다른 글

데이터형 정의하기 (typedef)  (0) 2014.02.20
열거형 기본 형태  (0) 2014.02.19
구조체 사용  (0) 2014.02.05
NULL 문자  (0) 2014.02.05
포인터 이해하기  (0) 2014.02.04

+ Recent posts