Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C언어에서 구조체의 합집합이란?

<시간/>

공용체는 C 프로그래밍 언어에서 서로 다른 데이터 유형의 여러 변수가 공유하는 메모리 위치입니다.

구문

구조체의 합집합 구문은 다음과 같습니다 -

union uniontag{
   datatype member 1;
   datatype member 2;
   ----
   ----
   datatype member n;
};

예시

다음 예제는 구조체의 합집합 사용을 보여줍니다 -

union sample{
   int a;
   float b;
   char c;
};

유니온 변수 선언

다음은 Union 변수에 대한 선언입니다. 다음과 같이 3가지 종류가 있습니다 -

유형 1

union sample{
   int a;
   float b;
   char c;
};

유형 2

union{
   int a;
   float b;
   char c;
}s;

유형 3

union sample{
   int a;
   float b;
   char c;
};
union sample s;
  • Union이 선언되면 컴파일러는 자동으로 가장 큰 크기의 변수 유형을 생성하여 Union에 변수를 보관합니다.

  • 언제든지 하나의 변수만 참조할 수 있습니다.

초기화 및 액세스

  • 같은 구조의 구문이 공용체 구성원에 액세스하는 데 사용됩니다.

  • 점 연산자는 회원에 접근하기 위한 것입니다.

  • 화살표 연산자(->)는 포인터를 사용하여 멤버에 액세스하는 데 사용됩니다.

샘플 프로그램 1

다음 프로그램은 구조체의 합집합 사용법을 보여줍니다.

union sample{
   int a;
   float b;
   char c;
}
main ( ){
   union sample s = {10, 20.5, "A"};
   printf("a=%d",s.a);
   printf("b=%f",s.b);
   printf("c=%c",s.c);
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

a = garbage value
b = garbage value
c = A

구조체 연합

  • 구조체는 유니온 내부에 중첩될 수 있으며 이를 구조체 유니온이라고 합니다.

  • 구조체 내부에 유니온을 생성하는 것이 가능합니다.

샘플 프로그램 2

구조체의 합집합의 사용법을 보여주는 또 다른 C 프로그램은 다음과 같습니다 -

struct x{
   int a;
   float b;
};
union z{
   struct x s;
};
main ( ){
   union z u;
   u.s.a = 10;
   u.s.b = 30.5;
   printf("a=%d", u.s.a);
   printf("b=%f", u.s.b);
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

a= 10
b = 30.5