একটি ইউনিয়ন হল একটি মেমরি অবস্থান যা সি প্রোগ্রামিং ভাষায় বিভিন্ন ডেটা প্রকারের বিভিন্ন ভেরিয়েবল দ্বারা ভাগ করা হয়।
সিনট্যাক্স
কাঠামোর মিলনের জন্য সিনট্যাক্স নিম্নরূপ -
union uniontag{
datatype member 1;
datatype member 2;
----
----
datatype member n;
}; উদাহরণ
নিম্নলিখিত উদাহরণটি কাঠামোর মিলনের ব্যবহার দেখায় −
union sample{
int a;
float b;
char c;
}; ইউনিয়ন পরিবর্তনশীলের ঘোষণা
নিম্নলিখিত ইউনিয়ন পরিবর্তনশীল জন্য ঘোষণা. এটি নিম্নরূপ -
তিন প্রকারটাইপ 1
union sample{
int a;
float b;
char c;
}s; টাইপ 2
union{
int a;
float b;
char c;
}s; টাইপ 3
union sample{
int a;
float b;
char c;
};
union sample s; -
যখন ইউনিয়ন ঘোষণা করা হয়, তখন কম্পাইলার স্বয়ংক্রিয়ভাবে ইউনিয়নে ভেরিয়েবল ধরে রাখতে সবচেয়ে বড় আকারের ভেরিয়েবল টাইপ তৈরি করে।
-
যেকোনো সময়, শুধুমাত্র একটি ভেরিয়েবল উল্লেখ করা যেতে পারে।
শুরু করা এবং অ্যাক্সেস করা
-
কাঠামোর একই সিনট্যাক্স একটি ইউনিয়ন সদস্য অ্যাক্সেস করতে ব্যবহার করা হয়।
-
ডট অপারেটর সদস্যদের অ্যাক্সেস করার জন্য।
-
পয়েন্টার ব্যবহার করে সদস্যদের অ্যাক্সেস করার জন্য তীর অপারেটর ( ->) ব্যবহার করা হয়।
নমুনা প্রোগ্রাম 1
নিম্নলিখিত প্রোগ্রামটি কাঠামোর মিলনের ব্যবহার দেখায়।
union sample{
int a;
float b;
char c;
}
main ( ){
union sample s = {10, 20.5, "A"};
printf("a=%d",s.a);
printf("b=%f",s.b);
printf("c=%c",s.c);
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
a = garbage value b = garbage value c = A
কাঠামোর মিলন
-
একটি কাঠামো একটি ইউনিয়নের ভিতরে বাসা বাঁধতে পারে এবং একে বলা হয় কাঠামোর ইউনিয়ন।
-
একটি কাঠামোর মধ্যে একটি ইউনিয়ন তৈরি করা সম্ভব।
নমুনা প্রোগ্রাম 2
আরেকটি সি প্রোগ্রাম যা কাঠামোর মিলনের ব্যবহার দেখায় -
নীচে দেওয়া হল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);
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
a= 10 b = 30.5