C-Language/union example

union example

Soul-Learner 2010. 11. 10. 13:27

UNION(공용체)은 멤버로 선언된 변수 중에서 가장 큰 자료형으로 메모리가 할당되고, 이들 변수는 저장공간을 서로 공유하게 된다. 즉, 여러개의 변수 중에서 하나만 선택하여 사용하는 경우에는 모든 변수에게 필요한 공간을 할당하는 것이 아니라 멤버변수 중에서 가장 큰 자료형에 따른 메모리가 할당되고 멤버변수들은 그 공간을 공유하게 된다.

다음 예제는 이용자의 식별자로 번호(num)나 이름(name) 중에서 하나만 선택하여 입력할 경우를 예로 든 것이다.

#include <stdio.h>

int main( void ){

 union u_test {
   int num;
   char name[16];
 };

 union u_test id;

 id.num = 65;
 printf("num=%d\n", id.num);         // 65
 printf("name=%s\n", id.name);     //  A

 id.name[0] = 'A';
 printf("num=%d\n", id.num);        // 65
 printf("name=%s\n", id.name);    //  A

 return 0;
}