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

ความแตกต่างระหว่างโครงสร้างและสหภาพในโปรแกรม C


ใน 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 เฉพาะสมาชิกคนแรกเท่านั้นที่สามารถเริ่มต้นได้ในแต่ละครั้ง