ইউনিয়ন হলো একটি মেমোরি লোকেশন যা বিভিন্ন ডেটা টাইপের বিভিন্ন ভেরিয়েবল দ্বারা শেয়ার করা হয়।
সিনট্যাক্স
সিনট্যাক্স নিম্নরূপ −
union uniontag{ datatype member 1; datatype member 2; ---- ---- datatype member n; };উদাহরণস্বরূপ,
union sample{ int a; float b; char c; };ইউনিয়ন ভেরিয়েবল ডিক্লেয়ারেশন
ইউনিয়ন ভেরিয়েবল ডিক্লেয়ারেশনের পদ্ধতিগুলো নিচে দেওয়া হলো −
Union sample
{ int a; float b; char c; }s;
Union
{ int a; float b; char c; }s;Union sample
{ int a; float b; char c; }; union sample s;যখন ইউনিয়ন ডিক্লেয়ার করা হয়, কম্পাইলার স্বয়ংক্রিয়ভাবে একটি ভেরিয়েবল তৈরি করে যা ইউনиয়নে সবচেয়ে বড় ভেরিয়েবল টাইপ ধারণ করে।
কোনো সময়ে শুধু একটি ভেরিয়েবলকে রেফার করা যায়।
ইনিশিয়ালাইজেশন ও অ্যাক্সেসিং
- ইউনিয়ন মেম্বার অ্যাক্সেস করা স্ট্রাকচারের মতোই।
- সাধারণত ডট অপারেটর ব্যবহার করা হয় মেম্বার অ্যাক্সেসের জন্য।
- অ্যারো অপারেটর ( ->) মেম্বার অ্যাক্সেসের জন্য ব্যবহার করা হয়।
- ইউনিয়ন-এ ডেটা টাইপ ব্যবহার করার কোনো বাধা নেই।
উদাহরণ
নিচে ইউনিয়ন টু পয়েন্টারের একটি সি প্রোগ্রাম দেওয়া হলো −
#include<stdio.h> union abc{ int a; char b; }; int main(){ union abc var; var.a=90; union abc *p=&var; printf("%d%c",p->a,p->b); }আউটপুট
উপরোক্ত প্রোগ্রাম এক্সিকিউট করলে নিচের ফলাফল আসে −
90Z