C 언어의 구조체와 공용체의 차이점은 아래에 설명되어 있습니다 -
아니요 | 구조 | 통합 |
---|---|---|
1 | 정의 구조는 단일 이름으로 함께 그룹화된 데이터 항목의 이기종 모음입니다. | 정의 공용체는 서로 다른 데이터 유형의 여러 변수가 공유하는 메모리 위치입니다. |
2 | 구문 struct tagname{ datatype member1; datatype member2; ---- ---- ---- }; | 구문 union tagname{ datatype member1; datatype member2; ---- ---- ---- }; |
3 | 예: struct sample{ int a; float b; char c; }; | 예: union sample{ int a; float b; char c; }; |
4 | 키워드 - 구조체 | 키워드 - 조합 |
5 | 메모리 할당 | 메모리 할당 |
6 | ||
7 | 할당된 메모리는 구조체에 있는 모든 데이터 유형의 크기의 합입니다(여기서는 7bytes). | 할당된 메모리는 유니온에 있는 모든 데이터 유형 중 할당되는 최대 크기입니다(여기서는 4bytes). |
8 | 구조의 모든 구성원에 대해 메모리가 다르게 할당됩니다. | 특정 인스턴스에서 한 멤버만 메모리에 상주합니다. |
예시
다음은 구조에 대한 C 프로그램입니다 -
#include<stdio.h> struct size{ double a; int b; char c; float d; }; int main(){ printf("%ld",sizeof( stuct size)); }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
24
예시
다음은 Union의 C 프로그램입니다 -
#include<stdio.h> union size{ double a; int b; char c; float d; } Int main(){ Printf("ld",sizeof(union size)); }
출력
위의 프로그램을 실행하면 다음과 같은 결과가 나온다 -
8