ถ้าโครงสร้างซ้อนกันภายในยูเนี่ยน เรียกว่า การรวมกันของโครงสร้าง มีความเป็นไปได้ที่จะสร้างสหภาพภายในโครงสร้างในภาษาซีโปรแกรม
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C สำหรับการรวมโครงสร้าง -
#include<stdio.h>
struct x {
int a;
float b;
};
union z{
struct x s;
};
main ( ){
union z u;
u.s.a = 10;
u.s.b = 30.5;
printf("a=%d", u.s.a);
printf("b=%f", u.s.b);
getch ( );
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
a= 10 b = 30.5
ตัวอย่าง
รับด้านล่างเป็นโปรแกรม C อื่นสำหรับการรวมกันของโครงสร้าง -
#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
printf("a=%d b=%c\n",p->a,p->b);//90 Z
printf("%d",sizeof(union abc));//4
return 0;
} ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
a=90 b=Z a=90 b=Z 4