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

C 프로그램에서 구조체와 공용체의 차이점

<시간/>

C에는 동일한 유형 데이터와 다중 유형 데이터 모두에 대한 컨테이너가 있습니다. 같은 타입의 데이터를 저장할 경우 C는 같은 타입의 데이터 변수를 저장하는 Array의 개념을 제공하고, 다른 타입의 데이터를 저장할 경우 C는 다른 타입의 데이터 변수도 저장할 수 있는 구조체와 공용체의 개념을 제공합니다.

Structure와 Union 모두 서로 다른 유형의 데이터를 보유할 수 있지만 이제 내부 구현을 기반으로 두 컨테이너에서 몇 가지 차이점을 찾을 수 있습니다.

다음은 Structure와 Union의 중요한 차이점입니다.

Sr. 아니요. 구조 통합
1 정의 구조는 다른 유형의 데이터 변수를 저장하기 위해 C로 정의된 컨테이너이며 사용자 정의 변수 저장도 지원합니다. 반면에 Union은 사용자 정의 변수와 함께 다른 유형의 변수도 담을 수 있는 C의 유사한 종류의 컨테이너입니다.
2 내부 구현 C의 구조는 각 입력 멤버에 별도의 메모리 위치가 할당되므로 내부적으로 구현됩니다. 다른 모든 입력 변수 중 가장 큰 크기를 가진 하나의 멤버에만 Union 메모리를 할당하고 이들 모두가 같은 위치를 공유하는 경우입니다.
3 구문 C에서 구조체를 선언하는 구문은 다음과 같습니다.
struct struct_name{
   type element1;
   type element2;
   .
   .
} variable1, variable2, ...;
C에서 Union을 선언하는 다른 구문은 다음과 같습니다.
union u_name{
   type element1;
   type element2;
   .
   .
} variable1, variable2, ...;
4 크기 정의에서 언급했듯이 구조는 해당 구성원에 대한 공유 위치가 없으므로 구조의 크기는 모든 데이터 구성원의 크기의 합보다 크거나 같습니다. 반면 Union은 각 구성원에 대한 별도의 위치가 없으므로 모든 데이터 구성원 중 가장 큰 구성원의 크기와 같거나 그 크기가 동일합니다.
5 값 저장 위에서 언급한 바와 같이 Structure의 경우 각 입력 데이터 멤버에 대한 특정 메모리 위치가 있으므로 다른 멤버의 여러 값을 저장할 수 있습니다. Union의 경우 모든 입력 데이터 멤버에 대해 하나의 공유 메모리 할당만 있으므로 모든 멤버에 대해 한 번에 단일 값을 저장합니다.
6 초기화 구조에서 여러 멤버가 동시에 초기화될 수 있습니다. 반면에 Union의 경우 첫 번째 멤버만 한 번에 초기화할 수 있습니다.