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

C에서 구조체와 합집합의 차이점

<시간/>

구조

구조는 사용자 정의 데이터 유형입니다. 서로 다른 유형의 데이터를 단일 유형으로 결합하는 데 사용됩니다. 여러 멤버와 구조 변수를 가질 수 있습니다. "struct"라는 키워드는 C 언어에서 구조를 정의하는 데 사용됩니다. 구조체 멤버는 dot(.) 연산자를 사용하여 액세스할 수 있습니다.

다음은 C 언어의 구조 구문입니다.

struct structure_name {
   member definition;
} structure_variables;

여기,

  • 구조_이름 − 구조에 부여된 모든 이름.

  • 구성원 정의 − 멤버 변수의 집합입니다.

  • 구조_변수 - 구조의 대상입니다.

다음은 C 언어의 구조 예입니다.

예시

#include <stdio.h>
#include <string.h>

struct Data {
   int i;
   long int f;
} data, data1;

int main( ) {
   data.i = 28;
   printf("The value of i : %d\n", (data.i));
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

출력

다음은 출력입니다.

The value of i : 28
Memory size occupied by data : 16 16

연합

Union은 또한 사용자 정의 데이터 유형입니다. Union의 모든 구성원은 동일한 메모리 위치를 공유합니다. Union의 크기는 가장 큰 Union 구성원의 크기에 따라 결정됩니다. 두 명 이상의 멤버에 대해 동일한 메모리 위치를 사용하려는 경우에는 union이 가장 좋습니다.

조합은 구조와 유사합니다. Union 변수는 구조체 변수와 같은 방식으로 생성됩니다. "union"이라는 키워드는 C 언어에서 공용체를 정의하는 데 사용됩니다.

다음은 C 언어의 공용체 구문입니다.

union union_name {
   member definition;
} union_variables;

여기,

  • union_name − 노동 조합에 부여된 모든 이름.

  • 구성원 정의 − 멤버 변수의 집합입니다.

  • union_variable − 연합의 대상입니다.

다음은 C 언어로 된 공용체의 예입니다.

예시

#include <stdio.h>
#include <string.h>

union Data {
   int i;
   float f;
} data, data1;

int main( ) {
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

출력

다음은 출력입니다.

Memory size occupied by data : 4 4