ความแตกต่างระหว่างโครงสร้างและยูเนี่ยนใน C (พร้อมตาราง)

สารบัญ:

Anonim

ในภาษาการเขียนโปรแกรม C มีประเภทข้อมูลที่กำหนดไว้ล่วงหน้าและประเภทข้อมูลที่ผู้ใช้กำหนด ตัวอย่างของชนิดข้อมูลที่กำหนดโดยผู้ใช้ ได้แก่ โครงสร้างและสหภาพใน C

ในโครงสร้างและสหภาพ ผู้ใช้สามารถกำหนดประเภทข้อมูลและฟังก์ชันสมาชิกที่แตกต่างกันเพื่อเข้าถึงตัวแปรทั้งหมด แม้ว่าทั้งคู่จะใช้รูปแบบเดียวกัน แต่ก็มีความแตกต่างกันอย่างมากระหว่างพวกเขา

โครงสร้างเทียบกับยูเนี่ยนในC

ในโครงสร้าง ขนาดหน่วยความจำทั้งหมดเท่ากับผลรวมของขนาดของประเภทข้อมูลทั้งหมดในโครงสร้าง ในขณะที่ใน Union ขนาดพื้นที่หน่วยความจำทั้งหมดจะเท่ากับขนาดของประเภทข้อมูลที่ใหญ่ที่สุดในสหภาพ มันเป็นหนึ่งในความแตกต่างที่สำคัญที่สุดระหว่างโครงสร้างและสหภาพ

ตัวอย่างเช่น

งานโครงสร้าง

{

เงินต่างประเทศ;

ชื่อถ่าน;

}s1;

ในนี้ขนาดของหน่วยความจำสำหรับโครงสร้างที่จัดสรรจะเป็น 2+1 =3 ไบต์เนื่องจากขนาดของจำนวนเต็มคือ 1 ไบต์และขนาดของถ่านคือ 2 ไบต์ ดังนั้นขนาดจะเป็น 3 ไบต์

` สหภาพแรงงาน

{

เงินต่างประเทศ;

ชื่อถ่าน;

}s1;

ในยูเนียน ขนาดของหน่วยความจำที่จัดสรรจะเป็น 2 ไบต์ เนื่องจากขนาดสูงสุดของชนิดข้อมูลในยูเนียนคือ 2 ไบต์ เช่น ชนิดข้อมูลอักขระ

ตารางเปรียบเทียบระหว่างโครงสร้างและยูเนี่ยนใน C (ในรูปแบบตาราง)

พารามิเตอร์สำหรับการเปรียบเทียบ ยูเนี่ยน โครงสร้าง
คำจำกัดความของคีย์เวิร์ด ใช้คีย์เวิร์ด “ยูเนี่ยน” ใช้คีย์เวิร์ด “struct”
ขนาดหน่วยความจำ ขนาดเท่ากับองค์ประกอบของขนาดที่ใหญ่ที่สุด ขนาดเท่ากับผลรวมขององค์ประกอบทั้งหมดในโครงสร้าง
หน่วยความจำที่ใช้ร่วมกัน หน่วยความจำขององค์ประกอบทั้งหมดถูกแชร์กับองค์ประกอบที่แตกต่างกัน องค์ประกอบโครงสร้างไม่มีหน่วยความจำที่ใช้ร่วมกัน
การเข้าถึงองค์ประกอบ เข้าถึงได้เพียงองค์ประกอบเดียวในครั้งเดียว สามารถเข้าถึงองค์ประกอบจำนวนเท่าใดก็ได้ในเวลาใดก็ได้
ตัวอย่าง ตัวอย่างยูเนี่ยน{ประเภทข้อมูลและสมาชิก}obj; ตัวอย่างโครงสร้าง{ประเภทข้อมูลและสมาชิก}obj;

โครงสร้างใน C คืออะไร?

โครงสร้างคือกลุ่มข้อมูลที่ผู้ใช้กำหนดและเป็นการรวบรวมประเภทข้อมูลต่างๆ ตัวอย่างต่อไปนี้จะมีประโยชน์มาก สมมติว่าโปรแกรมเมอร์จำเป็นต้องจัดเก็บข้อมูลบางอย่าง เช่น นักเรียน ชื่อ ชั้นเรียน ที่อยู่ และอื่นๆ อีกมากมาย

มีสองวิธีในการแก้ไขปัญหานี้ วิธีแรกคือการสร้างประเภทข้อมูลที่แตกต่างกัน และอีกวิธีหนึ่งคือการสร้างโครงสร้าง

ในกรณีนี้ โครงสร้างกรณีนี้จะเป็นประโยชน์ เนื่องจาก หากคุณสร้างตัวแปรแยกจากกัน คุณจะต้องสร้างตัวแปรจำนวนมากสำหรับนักเรียนทุกคน และมันจะเป็นหายนะจริงๆ แทนที่จะใช้โครงสร้างซ้ำแล้วซ้ำอีก

โครงสร้างสามารถสร้างได้โดยใช้คำสำคัญ struct

ตัวอย่างเช่น

โครงสร้างโครงสร้าง_name{

ชนิดข้อมูล datatype_name;

ชนิดข้อมูล datatype_name;

ชนิดข้อมูล datatype_name;

ชนิดข้อมูล datatype_name;

};

หากคุณต้องการเข้าถึงสมาชิกข้อมูลใด ๆ คุณต้องสร้างวัตถุเช่น

โครงสร้าง structure_name object_name;

ด้วยไวยากรณ์ object_name.datatype_name คุณจะสามารถเข้าถึงชนิดข้อมูลในโครงสร้างได้

Union ใน C คืออะไร?

คล้ายกับโครงสร้างยูเนี่ยนเป็นอีกประเภทข้อมูลที่ผู้ใช้กำหนดในภาษาการเขียนโปรแกรม C เมื่อใดก็ตามที่โปรแกรมเมอร์กำหนดยูเนี่ยน จะมีการสร้างประเภทข้อมูลโดยผู้ใช้ แต่ไม่มีตำแหน่งหน่วยความจำ

ถ้าคุณต้องการจัดสรรหน่วยความจำ ก็ต้องสร้างตัวแปรในสหภาพ ยูเนี่ยนมีคุณสมบัติที่ไม่อนุญาตให้โปรแกรมเมอร์คนใดเข้าถึงประเภทข้อมูลได้มากกว่าหนึ่งประเภท

ดังนั้น ในการทำงานร่วมกัน โปรแกรมเมอร์สามารถเข้าถึงสมาชิกข้อมูลได้ครั้งละหนึ่งสมาชิก ให้เรายกตัวอย่างเล็ก ๆ

ยูเนี่ยน union_name

{

Data_type Datatype_name;

Data_type Datatype_name;

Data_type Datatype_name;

Data_type Datatype_name;

};

ในตัวอย่างข้างต้น โครงสร้างพื้นฐานของสหภาพจะปรากฏขึ้น เป็นวิธีที่โปรแกรมเมอร์สร้างสหภาพ หากคุณต้องการเข้าถึงข้อมูลประเภทใดก็ได้ในสหภาพ คุณต้องใช้ข้อมูลดังกล่าว ตัวดำเนินการคล้ายกับโครงสร้าง

ยูเนี่ยน union_name objname; ด้วยคำสั่งข้างต้น คุณสามารถสร้างวัตถุที่จะช่วยให้คุณเข้าถึงสมาชิกข้อมูลในสหภาพโดยใช้ตัวดำเนินการจุด

ความแตกต่างหลักระหว่างโครงสร้างและยูเนี่ยนในC

  1. โครงสร้างคือชนิดข้อมูลที่กำหนดโดยผู้ใช้ซึ่งจัดเก็บชนิดข้อมูลประเภทต่างๆ นอกจากนี้ยังใช้เพื่อแสดงค่าของประเภทข้อมูลอีกด้วย หากโปรแกรมเมอร์ต้องการกำหนดยูเนี่ยน โปรแกรมเมอร์จำเป็นต้องใช้โครงสร้างคำสำคัญ ในขณะที่ยูเนี่ยนต้องการคำสำคัญยูเนี่ยนสำหรับคำจำกัดความ
  2. ในโครงสร้าง ชนิดข้อมูลทั้งหมดจะถูกจัดเก็บไว้ในตำแหน่งอื่น และคุณสามารถเข้าถึงสมาชิกข้อมูลได้หลายคน ในขณะที่สมาชิกข้อมูลทั้งหมดใช้ตำแหน่งหน่วยความจำเดียวกันในสหภาพเดียวกัน และสามารถเข้าถึงสมาชิกข้อมูลได้เพียงคนเดียวในแต่ละครั้ง
  3. ในโครงสร้าง สำหรับการเริ่มต้นสมาชิกใดๆ สมาชิกหลายคนสามารถเริ่มต้นได้ในครั้งเดียว แต่ในกรณีของสหภาพแรงงาน สามารถเริ่มต้นได้เฉพาะสมาชิกคนแรกเท่านั้น
  4. ขนาดรวมของโครงสร้างขึ้นอยู่กับผลรวมของขนาดของสมาชิกข้อมูลทั้งหมด ในขณะที่ในกรณีของการรวมขนาดจะเท่ากับสมาชิกข้อมูลที่มีขนาดที่ใหญ่ที่สุดในบรรดาทั้งหมด
  5. ในโครงสร้าง ข้อมูลทุกประเภทมีการจัดสรรหน่วยความจำที่แตกต่างกัน ในขณะที่ในการทำงานร่วมกัน มีหน่วยความจำเดียวที่จัดสรรสำหรับสมาชิกข้อมูลที่มีขนาดที่ใหญ่ที่สุด

บทสรุป

โครงสร้างและสหภาพแรงงานเป็นทั้งประเภทข้อมูลที่กำหนดโดยผู้ใช้ซึ่งใช้ในการเขียนโปรแกรมภาษาซี โครงสร้างและสหภาพแรงงานมีแนวคิดเดียวกันในการจัดเก็บข้อมูลหลายประเภท และชนิดข้อมูลทั้งหมดในโครงสร้างและยูเนียนสามารถเข้าถึงได้ด้วยตัวดำเนินการจุด

โครงสร้างและสหภาพต่างกันเพียงในแง่ของขนาดและการจัดสรรหน่วยความจำ แต่กรณีการใช้งานเหมือนกัน ทั้งคู่เพิ่มความสามารถในการนำโค้ดกลับมาใช้ใหม่และอีกมากมาย หากคุณต้องการเก็บค่าจำนวนมากสำหรับชนิดข้อมูลเดียว โครงสร้างและการรวมจะเป็นประโยชน์

กรณีใช้งานพื้นฐานของโครงสร้างและสหภาพแรงงานคือเมื่อคุณต้องการเก็บบันทึกของพนักงาน โครงสร้างหรือสหภาพจะจัดเก็บข้อมูลทั้งหมดในโครงสร้างหรือสหภาพ จากนั้นคุณสามารถจัดเก็บหรือเข้าถึงข้อมูลได้ ข้อแตกต่างที่สำคัญคือการจัดสรรหน่วยความจำและการเข้าถึงประเภทข้อมูล

ความแตกต่างระหว่างโครงสร้างและยูเนี่ยนใน C (พร้อมตาราง)