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