ইউনিয়ন অফ স্ট্রাকচার কী?
যদি একটি স্ট্রাকচারকে ইউনিয়ার ভিতরে নেস্ট (nested) করা হয়, তাকে ইউনিয়ন অফ স্ট্রাকচার বলা হয়। সি-তে স্ট্রাকচারের ভিতরেও ইউনিয়ন তৈরি করা যায়।
উদাহরণ ১: স্ট্রাকচার ইউনiyanın ভিতরে
#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 = %f\n", u.s.b);
return 0;
}
আউটপুট
a = 10 b = 30.5
উদাহরণ ২: পয়েন্টারের সাথে ইউনিয়ন
#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 = %d\n", sizeof(union abc)); // 4
return 0;
}
আউটপুট
a = 90 b = Z a = 90, b = Z 4
মনে রাখার বিষয়
- ইউনiyanın সাইজ = তার সবচেয়ে বড় মেম্বারের সাইজ।
- ইউনিয়নে একবারে শুধু একটি মেম্বার ভ্যালু ধারণ করতে পারে।
- স্ট্রাকচার ইউনিয়ন ভিতরে থাকলে, স্ট্রাকচারের সাইজই ইউনিয়নের সাইজ হবে (যদি সেটিই সবচেয়ে বড় হয়)।