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

Union of Structures (ยูเนียนของโครงสร้าง) ในภาษา C

Union of Structures** หมายถึง โครงสร้าง (Struct) ที่ถูกประกาศอยู่ภายใน ยูเนียน (Union) ในภาษา C สามารถสร้าง Union ภายใน Structure ได้เช่นกัน

ตัวอย่างที่ 1: Struct ใน Union

#include <stdio.h>

struct x {
    int a;
    float b;
};

union z {
    struct x s;
};

int main() {
    union z u;
    u.s.a = 10;
    u.s.b = 30.5;
    printf("a = %d\n", u.s.a);
    printf("b = %.1f\n", u.s.b);
    return 0;
}

ผลลัพธ์

a = 10
b = 30.5

ตัวอย่างที่ 2: Union แบบง่าย (แสดงการใช้หน่วยความจำร่วมกัน)

#include <stdio.h>

union abc {
    int a;
    char b;
} v;

int main() {
    v.a = 90;
    union abc *p = &v;
    
    printf("a = %d\n", v.a);      // 90
    printf("b = %c\n", v.b);      // 'Z' (ASCII 90)
    printf("a = %d, b = %c\n", p->a, p->b); // 90, Z
    printf("Size of union = %lu\n", sizeof(union abc)); // 4 bytes
    
    return 0;
}

ผลลัพธ์

a = 90
b = Z
a = 90, b = Z
Size of union = 4

จุดสำคัญ

  • Union ใช้หน่วยความจำร่วมกันสำหรับทุกสมาชิก
  • ขนาดของ Union = ขนาดของสมาชิกที่ใหญ่ที่สุด
  • ในเวลาเดียวกัน จะมีข้อมูลอยู่ใน Union ได้เพียงสมาชิกเดียว
  • การเข้าถึงสมาชิกผ่าน Pointer ใช้ -> (Arrow operator)