Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง Structure และ Union ในโปรแกรมภาษา C

ในภาษา C มีคอนเทนเนอร์สำหรับข้อมูลชนิดเดียวกันและหลายชนิด สำหรับข้อมูลชนิดเดียวกันมี Array ส่วนข้อมูลหลายชนิดมี Structure และ Union ซึ่งทั้งคู่จัดเก็บตัวแปรชนิดต่างๆ ได้

แม้ทั้งคู่จะจัดเก็บข้อมูลหลายชนิดได้ แต่จากการทำงานภายในมีความแตกต่างสำคัญดังนี้:

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