오늘은 공용체에 대해서 간단하고 빠르게 알아보겠습니다. 공용체는 앞서 배웠던 구조체와 비슷한데 약간~ 다릅니다.
우리가 위와 같이 구조체를 하나 선언했다고 가정해 보겠습니다. 그럼 메모리상에서 구조체는 순서대로 위치하기 때문에 아래와 같이 위치하게 됩니다.
순서대로 int a와 char b가 위치하는 것이지요. 그런데 공용체는 메모리 공간을 공유합니다.
예를 들어 위와 같은 공용체를 선언했다고 가정하면 int a와 char b는 메모리상에서 아래와 같이 위치하게 됩니다.
엥? 이게 뭐야~ 라고 생각하시는 분들이 계실지도 모르겠네요. 하지만 엄연히 C언어의 기능중에 한가지랍니다. 그런데 이렇게 위치하다보니 거의 쓰이는 일이 드물기는 합니다.
위에서 봤던것과 같이 선언하는 형식은 sctruct(구조체)와 동일한데 struct대신에 union(공용체)라고 쓰는 것만 다릅니다. 그럼 공용체를 사용하여 실행하면 어떤 결과를 가지고 오는지 한번 확인해 보겠습니다.
위 예제에서 우리는 공용체 sg의 원소 a에만 데이터를 입력했습니다. 그럼 실행해 보겠습니다.
아~ 이제 감이 조금 오시나요?
원소를 하나 더 추가하여 실행해 보아도~
실행결과는 동일합니다. 메모리 상에서 모든 원소의 시작 주소가 동일하다는 의미지요. 만약 똑같은 데이터를 공유해야 한다면 괜찮은 방법이긴 합니다. 오늘은 이렇게 간단히 공용체에 대해서 알아보았습니다. 감사합니다.
제 블로그를 방문해 주셔서 감사합니다.
도움이 되셨다면 공감(좋아요) 부탁드리고,
댓글은 다른분들께도 좋은 정보일 수 있으니
공개로 부탁드립니다.
여러분의 작은 정성이 좋은 포스팅을 생산하는
힘이 된답니다. :)
감사합니다.
'PROGRAMMING > C' 카테고리의 다른 글
C언어 구조체 응용 (이중 구조체) (0) | 2022.12.08 |
---|---|
C언어 구조체 응용 (구조체와 함수) (0) | 2022.12.06 |
C언어 구조체 심화 (구조체포인터) (0) | 2022.11.30 |
C언어 구조체 기초 (0) | 2022.11.28 |
C언어 Function 응용 #2 (사용자 정의 함수) (0) | 2022.11.23 |
댓글