로딩
요청 처리 중입니다...

유니언(union)

 유니언(union)

앞에서 살펴본 구조 human에서 성별을 구별한다고 가정하자. 그래서 남성의 경우 수염을 기르는지 여부를, 여성의 경우 출산 아동의 수를 각각 파악한다고 하자.

이런 경우를 위해 C 언어에서는 유니언(union)이라는 것을 제공한다. union의 선언은 구조와 유사하지만 union의 필드들은 그들의 메모리 공간을 공용해야 한다. 이는 어느 시점에서 union의 한 필드만 활성화 되어 사용 가능하다는 것을 의미한다.

다음과 같이 person1과 person2에 값을 할당할 수 있다. 먼저 태그(tag) 필드에 값을 설정한 점에 유의하라.

이 값은 union에 있는 필드의 활성화를 결정한다. 이후 union의 적절한 필드에 값을 지정한다.

예를 들어, 만일 sexInfo.sex의 값이 male이면 sexInfo.uni.beard에 값을 넣는다. 마찬가지로 female인 경우 sexInfo.uni.children 필드에 값을 지정한다.

C 언어는 union에서 필드를 올바르게 사용했는지의...

원문 링크 : 유니언(union)