একটি ইউনিয়ন হল একটি মেমরি অবস্থান যা সি প্রোগ্রামিং ভাষায় বিভিন্ন ডেটা প্রকারের বিভিন্ন ভেরিয়েবল দ্বারা ভাগ করা হয়।
সিনট্যাক্স
কাঠামোর মিলনের জন্য সিনট্যাক্স নিম্নরূপ -
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