공용체는 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