ใน C เรามีคอนเทนเนอร์สำหรับทั้งข้อมูลประเภทเดียวกันและข้อมูลหลายประเภท สำหรับการจัดเก็บข้อมูลประเภท C เดียวกัน ให้แนวคิดของ Array ที่เก็บตัวแปรข้อมูลประเภทเดียวกัน ในขณะที่การจัดเก็บข้อมูลประเภท C ที่ต่างกัน มีแนวคิดเกี่ยวกับโครงสร้างและการรวมที่สามารถเก็บข้อมูลตัวแปรข้อมูลประเภทต่างๆ ได้เช่นกัน
เนื่องจากทั้งโครงสร้างและสหภาพสามารถเก็บข้อมูลประเภทต่างๆ ได้ แต่ตอนนี้บนพื้นฐานของการใช้งานภายใน เราจึงพบความแตกต่างหลายประการในคอนเทนเนอร์ทั้งสองนี้
ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่างโครงสร้างและสหภาพ
| ซีเนียร์ เลขที่ | คีย์ | โครงสร้าง | ยูเนี่ยน |
|---|---|---|---|
| 1 | คำจำกัดความ | โครงสร้างคือคอนเทนเนอร์ที่กำหนดไว้ใน C เพื่อจัดเก็บตัวแปรข้อมูลประเภทต่างๆ และยังรองรับการจัดเก็บตัวแปรที่ผู้ใช้กำหนดเองอีกด้วย | ในทางกลับกัน Union เป็นคอนเทนเนอร์ประเภทเดียวกันในภาษา C ซึ่งสามารถเก็บตัวแปรประเภทต่างๆ ควบคู่ไปกับตัวแปรที่ผู้ใช้กำหนดได้ |
| 2 | การใช้งานภายใน | โครงสร้างใน C ถูกใช้งานภายในเนื่องจากมีการจัดสรรตำแหน่งหน่วยความจำแยกต่างหากให้กับสมาชิกอินพุตแต่ละคน | แม้ว่าหน่วยความจำแบบยูเนี่ยนจะถูกจัดสรรให้กับสมาชิกเพียงคนเดียวที่มีขนาดที่ใหญ่ที่สุดในบรรดาตัวแปรอินพุตอื่น ๆ ทั้งหมด และตำแหน่งเดียวกันจะถูกใช้ร่วมกันระหว่างสิ่งเหล่านี้ทั้งหมด |
| 3 | ไวยากรณ์ | รูปแบบการประกาศโครงสร้างในภาษา C มีดังต่อไปนี้ struct struct_name{
type element1;
type element2;
.
.
} variable1, variable2, ...; | ในไวยากรณ์อื่น ๆ ของการประกาศ Union ใน C มีดังต่อไปนี้:union u_name{
type element1;
type element2;
.
.
} variable1, variable2, ...; |
| 4 | ขนาด | ดังที่กล่าวไว้ในคำจำกัดความ โครงสร้างไม่มีตำแหน่งที่ใช้ร่วมกันสำหรับสมาชิก ดังนั้นขนาดของโครงสร้างจึงเท่ากับหรือมากกว่าผลรวมของขนาดของสมาชิกข้อมูลทั้งหมด | ในทางกลับกัน Union ไม่มีตำแหน่งแยกสำหรับสมาชิกแต่ละคน ดังนั้นขนาดจึงเท่ากับหรือเท่ากับขนาดของสมาชิกที่ใหญ่ที่สุดในบรรดาสมาชิกข้อมูลทั้งหมด |
| 5 | การจัดเก็บค่า | ดังที่กล่าวไว้ข้างต้นในกรณีที่โครงสร้างมีตำแหน่งหน่วยความจำเฉพาะสำหรับสมาชิกข้อมูลที่ป้อนเข้าแต่ละคน และด้วยเหตุนี้จึงสามารถจัดเก็บค่าต่างๆ ของสมาชิกที่แตกต่างกันได้ | แม้ว่าในกรณีของ Union จะมีการจัดสรรหน่วยความจำที่ใช้ร่วมกันเพียงรายการเดียวสำหรับสมาชิกข้อมูลที่ป้อนทั้งหมด ดังนั้นจะจัดเก็บค่าเดียวในแต่ละครั้งสำหรับสมาชิกทั้งหมด |
| 6 | การเริ่มต้น | ในโครงสร้างสมาชิกหลายคนสามารถเริ่มต้นได้พร้อมกัน | ในทางกลับกัน ในกรณีของ Union เฉพาะสมาชิกคนแรกเท่านั้นที่สามารถเริ่มต้นได้ในแต่ละครั้ง |