공용체 (union)

한준수·2023년 6월 15일
0

C-Lang

목록 보기
8/12

📖 공용체란?

하나의 공간(메모리)을 서로 다른 두 변수가 같이 사용하는 것이다.

공용체는 순서가 규칙적이지 않고, 미리 알 수 없는 다양한 타입의 데이터를 저장할 수 있도록 설계된 타입이다.

양자 역학인가;;

📌 공용체 문법

  • 공용체를 사용하는 방법은 구조체와 거의 비슷하다.

  • 차이점은 구조체의 경우 멤버 변수 각각에 별도의 공간을 할당하는 반면 공용체에서는 멤버 변수가 공간을 공유한다는 것.

    • 형식
      union 공용체형_이름{
      	데이터_형식 멤버_변수_1;
        데이터_형식 멤버_변수_2;
        			.
                	.
                	.
      };
      
      union 공용체형_이름 공용체_변수;

      ⌨ 예제

      #include<stdio.h>
      
      void main(){
      	union student{
        	int tot;
            int grade;
        };
        
        union student u;
        
        u.tot = 300;
        u.grade = 'A';
        
        printf("\n--- 공용체 활용 ---\n");
        printf("총점 ==> %d\n",u.tot);
        printf("등급 ==> %c\n",u.grade);
      }

      💻 결과


      300 이어야 하는 게 321이 됐다.

      공용체 멤버 변수가 여러 개 일 때는 그중 가장 큰 저장공간이 공용체의 크기가 된다.

      300이 들어간 4바이트 중 첫번째 바이트에 A(아스키 코드 65)가 들어가면서 값이 이상해진거다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN