Union เป็น user-defined datatype สมาชิกทุกตัวใช้หน่วยความจำร่วมกัน (same memory location) ขนาด union = ขนาดสมาชิกที่ใหญ่ที่สุด ใช้เมื่อต้องการให้หลายสมาชิกใช้ที่อยู่หน่วยความจำเดียวกัน
Union คล้าย struct แต่ใช้ keyword union
ไวยากรณ์
union union_name {
member definition;
} union_variables;ตัวอย่าง
#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
Union Data มี int (4 bytes) และ float (4 bytes) ขนาดรวม = 4 bytes