Sự khác biệt giữa cấu trúc và sự hợp nhất trong ngôn ngữ C được giải thích dưới đây -
| S.Không | Cấu trúc | Công đoàn |
|---|---|---|
| 1 | Định nghĩa Cấu trúc là tập hợp không đồng nhất của các mục dữ liệu được nhóm lại với nhau dưới một tên duy nhất | Định nghĩa Liên hợp là một vị trí bộ nhớ được chia sẻ bởi một số biến của các kiểu dữ liệu khác nhau. |
| 2 | Cú pháp; struct tagname{
datatype member1;
datatype member2;
----
----
----
}; | Cú pháp; union tagname{
datatype member1;
datatype member2;
----
----
----
}; |
| 3 | Ví dụ: struct sample{
int a;
float b;
char c;
}; | Ví dụ: union sample{
int a;
float b;
char c;
}; |
| 4 | từ khóa - struct | từ khóa - công đoàn |
| 5 | Phân bổ bộ nhớ | Phân bổ bộ nhớ |
| 6 | | |
| 7 | Bộ nhớ được cấp phát là tổng kích thước của tất cả các kiểu dữ liệu trong cấu trúc (Ở đây, 7byte) | Bộ nhớ được cấp phát là kích thước tối đa được phân bổ trong số tất cả các kiểu dữ liệu trong liên hợp (Ở đây, 4byte) |
| 8 | Bộ nhớ được cấp phát khác nhau cho tất cả các thành viên của cấu trúc | Chỉ một thành viên sẽ cư trú trong bộ nhớ tại bất kỳ trường hợp cụ thể nào |
Ví dụ
Sau đây là chương trình C cho các cấu trúc -
#include<stdio.h>
struct size{
double a;
int b;
char c;
float d;
};
int main(){
printf("%ld",sizeof( stuct size));
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
24
Ví dụ
Sau đây là chương trình C về công đoàn -
#include<stdio.h>
union size{
double a;
int b;
char c;
float d;
}
Int main(){
Printf("ld",sizeof(union size));
} Đầu ra
Khi chương trình trên được thực thi, nó tạo ra kết quả sau -
8