안녕하세요. 공용체에 대해 정의를 해볼까 합니다.

 

- 공용체는 서로 다른 데이터형에 메모리 공간을 중첩해서 사용하기 위한 방법.

  주로 구조체에서  서로 다른 데이터값이 발생할 수 있는 상황에서 주로 사용함.

 

공용체의 선언 방법

 

예)

 

#include <stdio.h>

 

union tag // 메모리 100번지에 공용체 할당

{

      int i; // 100번지~103번까지 사용

     double d;  // 100번지~107번까지 i의 공간을 중첩해서 사용

};

 

위와 같은 공용체가 선언되었을 시 i,d는 모두 같은 메모리번지에 할당.

 

멤버변수의 메모리 번지 출력해서 증명

 

예)

union tag U;

printf("%d\n",&U,i);

printf("%d\n",&U,d);

출력을 해보면 1245052가 출력이 되네요.

 

정리

 

-공용체: 메모리를 공유해 사용하는 구조체 변형방법

-중첩: 두 개의 변수가 시작되는 주소가 같은경우