ความแตกต่างระหว่างโครงสร้างและสหภาพแรงงานในภาษา C อธิบายไว้ด้านล่าง -
| S.No | โครงสร้าง | ยูเนี่ยน |
|---|---|---|
| 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 | หน่วยความจำที่จัดสรรเป็นผลรวมของขนาดของประเภทข้อมูลทั้งหมดในโครงสร้าง (ในที่นี้ 7 ไบต์) | หน่วยความจำที่จัดสรรคือขนาดสูงสุดที่จัดสรรระหว่างประเภทข้อมูลทั้งหมดในสหภาพ (ที่นี่ 4 ไบต์) |
| 8 | มีการจัดสรรหน่วยความจำสำหรับสมาชิกของโครงสร้างที่แตกต่างกัน | มีสมาชิกเพียงคนเดียวเท่านั้นที่จะอยู่ในหน่วยความจำ ณ อินสแตนซ์ใด ๆ |
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับโครงสร้าง -
#include<stdio.h>
struct size{
double a;
int b;
char c;
float d;
};
int main(){
printf("%ld",sizeof( stuct size));
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
24
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C เกี่ยวกับสหภาพ -
#include<stdio.h>
union size{
double a;
int b;
char c;
float d;
}
Int main(){
Printf("ld",sizeof(union size));
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
8

