C언어 - 공용체

Programming/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도 바뀔것이다.

'Programming > C' 카테고리의 다른 글

C언어 - strlen()함수  (0) 2016.06.12
C언어 - gets(), puts()함수  (0) 2016.06.11
C언어 - 구조체와 함수  (0) 2016.06.09
C언어 - 자기참조 구조체, 외부참조 구조체  (0) 2016.06.08
C언어 - 구조체와 포인터  (0) 2016.06.07
posted by 경원구