Programming/C

C언어 - 공용체

경원구 2016. 6. 10. 06:30

<공용체>

공용체는 구조체의 개념에서 모두 같지만 딱 하나... 메모리를 공유한다는 점과 차이점이 있다.

공용체도 변수들을 묶어 하나의 구조체 처럼 사용한다. 하지만 이 공용체는 변수의 메모리 공간을 공유한다.

 

예를 들면

struct abc

{

   char a;

   int b;

   double c;

};

 

union abc

{

   char a;

   int b;

   double c;

};

이렇게 있다고 가정하자. 각각의 의미를 그림으로 표현해보면...

 


 

공용체와 구조체는 접근방법과 문법도 거의 동일하다.


<실습>


-결과-

 

위에 공용체와 구조체의 문법을 보면 거의 동일한 것을 알 수 있다.

sizeof를 이용해서 union abstruct xy를 찍어냈다. 결과는 각각 4 8이다.

이렇듯이 메모리 공간을 공유하는 것을 알 수 있다.

그렇다면 union에 있는 멤버 변수 b20으로 바꾼다면? 당연히 a도 바뀔것이다.