강좌 & 팁
글 수 2,412
2014.03.07 00:42:16 (*.192.90.40)
44203
안녕하세요. 공용체에 대해 정의를 해볼까 합니다.
- 공용체는 서로 다른 데이터형에 메모리 공간을 중첩해서 사용하기 위한 방법.
주로 구조체에서 서로 다른 데이터값이 발생할 수 있는 상황에서 주로 사용함.
공용체의 선언 방법
예)
#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가 출력이 되네요.
정리
-공용체: 메모리를 공유해 사용하는 구조체 변형방법
-중첩: 두 개의 변수가 시작되는 주소가 같은경우