একটি ইউনিয়ন হল একটি মেমরি অবস্থান যা বিভিন্ন ডেটা প্রকারের বিভিন্ন ভেরিয়েবল দ্বারা ভাগ করা হয়।
সিনট্যাক্স
C প্রোগ্রামিং-এ ইউনিয়নের জন্য নির্দেশকের সিনট্যাক্স নিম্নরূপ -
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; -
যখন ইউনিয়ন ঘোষণা করা হয়, তখন কম্পাইলার স্বয়ংক্রিয়ভাবে ইউনিয়নে ভেরিয়েবল ধরে রাখতে সবচেয়ে বড় আকারের ভেরিয়েবল টাইপ তৈরি করে।
-
যে কোন সময় শুধুমাত্র একটি ভেরিয়েবল উল্লেখ করা যেতে পারে।
-
কাঠামোর একই সিনট্যাক্স একটি ইউনিয়ন সদস্য অ্যাক্সেস করতে ব্যবহার করা হয়।
-
ডট অপারেটর সদস্যদের অ্যাক্সেস করার জন্য।
-
তীর অপারেটর ( ->) পয়েন্টার ব্যবহার করে সদস্যদের অ্যাক্সেস করার জন্য ব্যবহার করা হয়।
আমাদের ইউনিয়নের জন্য পয়েন্টার রয়েছে এবং আমরা কাঠামোর মতো তীর অপারেটর (->) ব্যবহার করে সদস্যদের অ্যাক্সেস করতে পারি।
উদাহরণ
নিম্নলিখিত প্রোগ্রামটি সি প্রোগ্রামিং -
-এ ইউনিয়নের জন্য পয়েন্টারগুলির ব্যবহার দেখায়#include <stdio.h>
union pointer {
int num;
char a;
};
int main(){
union pointer p1;
p1.num = 75;
// p2 is a pointer to union p1
union pointer* p2 = &p1;
// Accessing union members using pointer
printf("%d %c", p2->num, p2->a);
return 0;
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
75 K
উদাহরণ 2
বিভিন্ন ইনপুট সহ একই উদাহরণ বিবেচনা করুন।
#include <stdio.h>
union pointer {
int num;
char a;
};
int main(){
union pointer p1;
p1.num = 90;
// p2 is a pointer to union p1
union pointer* p2 = &p1;
// Accessing union members using pointer
printf("%d %c", p2->num, p2->a);
return 0;
} আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
90 Z