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

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


โครงสร้าง

โครงสร้างเป็นประเภทข้อมูลที่กำหนดโดยผู้ใช้ ใช้เพื่อรวมข้อมูลประเภทต่างๆ ให้เป็นประเภทเดียว สามารถมีสมาชิกหลายตัวและตัวแปรโครงสร้างได้ คีย์เวิร์ด “struct” ใช้เพื่อกำหนดโครงสร้างในภาษาซี สมาชิกโครงสร้างสามารถเข้าถึงได้โดยใช้ตัวดำเนินการ dot(.)

นี่คือไวยากรณ์ของโครงสร้างในภาษาซี

struct structure_name {
   member definition;
} structure_variables;

ที่นี่

  • structure_name − ชื่อใด ๆ ที่กำหนดให้กับโครงสร้าง

  • คำจำกัดความของสมาชิก − ชุดของตัวแปรสมาชิก

  • structure_variable − นี่คือเป้าหมายของโครงสร้าง

นี่คือตัวอย่างโครงสร้างในภาษา C

ตัวอย่าง

#include <stdio.h>
#include <string.h>

struct Data {
   int i;
   long int f;
} data, data1;

int main( ) {
   data.i = 28;
   printf("The value of i : %d\n", (data.i));
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

ผลลัพธ์

นี่คือผลลัพธ์

The value of i : 28
Memory size occupied by data : 16 16

ยูเนี่ยน

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

สหภาพแรงงานมีลักษณะคล้ายกับโครงสร้าง ตัวแปรยูเนี่ยนถูกสร้างขึ้นในลักษณะเดียวกับตัวแปรโครงสร้าง คีย์เวิร์ด “union” ใช้เพื่อกำหนดสหภาพในภาษาซี

นี่คือรูปแบบของสหภาพแรงงานในภาษาซี

union union_name {
   member definition;
} union_variables;

ที่นี่

  • union_name − ชื่อใดๆ ที่มอบให้กับสหภาพแรงงาน

  • คำจำกัดความของสมาชิก − ชุดของตัวแปรสมาชิก

  • union_variable − นี่คือเป้าหมายของสหภาพ

นี่คือตัวอย่างสหภาพแรงงานในภาษาซี

ตัวอย่าง

#include <stdio.h>
#include <string.h>

union Data {
   int i;
   float f;
} data, data1;

int main( ) {
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

ผลลัพธ์

นี่คือผลลัพธ์

Memory size occupied by data : 4 4