ความแตกต่างระหว่างโครงสร้างและสหภาพแรงงานในภาษา 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