পর্ব ১৫: সি তে ইউনিয়ন | Union in C

🎯 এই পর্বে যা জানবে:

  • ইউনিয়ন কী
  • স্ট্রাকচার ও ইউনিয়নের পার্থক্য
  • ইউনিয়ন ঘোষণা ও ব্যবহার
  • মেমোরি ব্যবস্থাপনা
  • উদাহরণসহ ব্যাখ্যা
  • ইউনিয়নের সুবিধা ও সীমাবদ্ধতা

🧩 ইউনিয়ন কী?

ইউনিয়ন (Union) হলো এক ধরনের user-defined data type যা একাধিক ডেটা মেম্বার ধারণ করতে পারে, কিন্তু এক সময়ে শুধু একটি মেম্বারই মান ধরে রাখতে পারে।

👉 সহজভাবে বললে —

ইউনিয়ন এমন একটি ডেটা টাইপ যেখানে সব মেম্বার একই মেমোরি শেয়ার করে।

অর্থাৎ, স্ট্রাকচারের মতো হলেও ইউনিয়নের প্রধান পার্থক্য হলো একাধিক মেম্বারের জন্য আলাদা আলাদা মেমোরি বরাদ্দ হয় না, বরং একটি কমন মেমোরি স্পেস ব্যবহার করা হয়।


💡 কেন ইউনিয়ন ব্যবহার করা হয়?

যখন কোনো ভেরিয়েবল একই মেমোরি স্থান ব্যবহার করে বিভিন্ন ধরণের মান ধারণ করতে পারে, তখন মেমোরি বাঁচানোর জন্য ইউনিয়ন ব্যবহার করা হয়।
বিশেষ করে embedded systems বা low memory devices এ ইউনিয়ন খুব কার্যকর।


🧮 ইউনিয়ন ঘোষণা (Union Declaration)

এখানে Data নামের ইউনিয়নে তিনটি মেম্বার আছে:

  • i → integer
  • f → float
  • str → string

⚙️ ইউনিয়ন ভেরিয়েবল তৈরি

এছাড়াও একসাথে ইনিশিয়ালাইজ করা যায় 👇


🧭 ইউনিয়ন মেম্বার অ্যাক্সেস (Accessing Members)

ডট (.) অপারেটর দিয়ে মেম্বার অ্যাক্সেস করা হয়।


🧠 আউটপুট বিশ্লেষণ

উপরের প্রোগ্রামের আউটপুট হতে পারে 👇

তবে লক্ষ্য করো, শেষে শুধু str সঠিকভাবে প্রদর্শিত হবে।
কারণ data.fdata.i এর মান data.str লেখার পর ওভাররাইট হয়ে গেছে।
👉 এটি ঘটে কারণ সব মেম্বার একই মেমোরি স্পেস শেয়ার করে।


🔍 মেমোরি ব্যবহারের ধারণা

এখানে মেমোরি বরাদ্দ হবে সবচেয়ে বড় মেম্বারের আকার অনুযায়ী
যেহেতু str[20] সবচেয়ে বড় (২০ বাইট), তাই পুরো ইউনিয়নের সাইজ হবে ২০ বাইট।


🧮 sizeof() দিয়ে পরীক্ষা

আউটপুট:


🆚 স্ট্রাকচার ও ইউনিয়নের পার্থক্য

বিষয়StructureUnion
মেমোরি বরাদ্দপ্রতিটি মেম্বারের জন্য আলাদাসব মেম্বার এক মেমোরি শেয়ার করে
একাধিক মান একসাথে রাখাসম্ভবঅসম্ভব
মোট সাইজসব মেম্বারের যোগফলসবচেয়ে বড় মেম্বারের সাইজ
ব্যবহারএকাধিক তথ্য একসাথে রাখতেমেমোরি সাশ্রয় করতে

🧱 ইউনিয়ন উদাহরণ: বিভিন্ন ডেটা একত্রে রাখা

👉 এখানে শেষে শুধু salary সঠিকভাবে দেখাবে, বাকিগুলো ওভাররাইট হবে।


🧠 ইউনিয়নের সুবিধা

✅ মেমোরি সাশ্রয় হয়
✅ একাধিক ডেটা টাইপ একই স্থানে রাখা যায়
✅ হার্ডওয়্যার বা নেটওয়ার্ক প্রোগ্রামিংয়ে কার্যকর


⚠️ সীমাবদ্ধতা

❌ এক সময়ে একটাই মান সংরক্ষণ করা যায়
❌ ভুলভাবে ব্যবহার করলে ডেটা হারিয়ে যেতে পারে
✅ মেমোরি শেয়ার করার ধারণা ভালোভাবে বুঝে ব্যবহার করা জরুরি


✨ সংক্ষেপে

  • ইউনিয়ন একই মেমোরি স্পেসে বিভিন্ন ডেটা রাখতে দেয়
  • একসাথে একটাই মান রাখা যায়
  • স্ট্রাকচারের তুলনায় কম মেমোরি লাগে
  • Embedded systems এ ইউনিয়ন খুব জনপ্রিয়

পর্ব ১৫: সি তে ইউনিয়ন | Union in C

C প্রোগ্রামিং টিউটোরিয়াল (৩০ পর্বে)