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