ইউনিয়ন এবং এর ব্যবহার

স্ট্রাকচার এবং ইউনিয়ন - সি প্রোগ্রামিং উদাহরণ (C Examples) - Computer Science

387

ইউনিয়ন হলো সি প্রোগ্রামিং ভাষায় একটি ডেটা টাইপ, যা স্ট্রাকচারের মতো বিভিন্ন ধরনের ডেটা একত্রে সংরক্ষণ করতে ব্যবহৃত হয়। তবে স্ট্রাকচারের সাথে এর মূল পার্থক্য হলো, ইউনিয়নে সব মেম্বার একই মেমোরি লোকেশন শেয়ার করে। ফলে একসাথে একাধিক মেম্বারকে কার্যকরভাবে সংরক্ষণ করা সম্ভব হয় না। ইউনিয়নের সাহায্যে বিভিন্ন ধরনের ডেটা সংরক্ষণ করা সম্ভব হলেও একই সময়ে কেবলমাত্র একটি মেম্বার কার্যকরভাবে ডেটা সংরক্ষণ করতে পারে।

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

১. মেমোরি অপটিমাইজেশন: যখন একটি ডেটা টাইপে একসাথে একাধিক ভিন্ন ধরনের মান রাখা প্রয়োজন হয় না, তখন ইউনিয়ন ব্যবহার করে মেমোরি অপটিমাইজ করা যায়। ২. ভিন্ন ধরনের ইনপুট ব্যবস্থাপনা: কোনো ফাংশন বা ডেটা স্ট্রাকচার যেখানে বিভিন্ন ধরনের ডেটা একত্রে সংরক্ষণ করতে হয়, সেখানে ইউনিয়ন ব্যবহার কার্যকর। ৩. মাল্টিপল রেসপন্স ফরম্যাট: যখন কোনো ভেরিয়েবলে বিভিন্ন ফরম্যাটের রেসপন্স থাকতে পারে, সেখানে ইউনিয়ন ব্যবহার করা যেতে পারে।

উদাহরণ: ইউনিয়ন ব্যবহার করে মেমোরি সাশ্রয় করা

ধরা যাক, আমরা একটি Measurement ইউনিয়ন তৈরি করছি, যেখানে ওজন বা উচ্চতা সংরক্ষণ করতে হবে। তবে একসঙ্গে দুটিই সংরক্ষণের প্রয়োজন নেই।

#include <stdio.h>

union Measurement {
    int weight;     // ওজন সংরক্ষণ
    float height;   // উচ্চতা সংরক্ষণ
};

int main() {
    union Measurement m;

    m.weight = 70;
    printf("Weight: %d kg\n", m.weight);

    m.height = 1.75;
    printf("Height: %.2f meters\n", m.height);

    return 0;
}

আউটপুট:

Weight: 70 kg
Height: 1.75 meters

বিঃদ্রঃ: এখানে m.weight সেট করার পর যখন m.height সেট করা হয়, তখন আগের m.weight এর মান মুছে যায় কারণ একই মেমোরি লোকেশন শেয়ার করা হচ্ছে।

ইউনিয়নের বৈশিষ্ট্য এবং সীমাবদ্ধতা

বৈশিষ্ট্যব্যাখ্যা
মেমোরি শেয়ারিংইউনিয়নের সব মেম্বার একই মেমোরি শেয়ার করে, যা মেমোরি অপটিমাইজেশনে সহায়ক
একক মেম্বার কার্যকরএকই সময়ে কেবলমাত্র একটি মেম্বার কার্যকর থাকে
ডেটা সংরক্ষণ সীমাবদ্ধযেহেতু সব মেম্বার একই মেমোরি শেয়ার করে, তাই সব ডেটা একসাথে সংরক্ষণ সম্ভব নয়

স্ট্রাকচার বনাম ইউনিয়ন

বৈশিষ্ট্যস্ট্রাকচারইউনিয়ন
মেমোরি বরাদ্দপ্রতিটি মেম্বার আলাদা মেমোরি পায়সব মেম্বার একই মেমোরি শেয়ার করে
একাধিক মেম্বার কার্যকরএকসঙ্গে একাধিক মেম্বার কার্যকর থাকেএকসঙ্গে একটি মেম্বার কার্যকর থাকে
আকারস্ট্রাকচারের আকার সব মেম্বারের যোগফলসবচেয়ে বড় মেম্বারের আকারের সমান

সংক্ষেপে

  • ইউনিয়ন হলো এমন ডেটা টাইপ যা একই মেমোরি স্পেস শেয়ার করে।
  • এটি মেমোরি অপটিমাইজেশনে সহায়ক এবং একসঙ্গে একাধিক ডেটা রাখার প্রয়োজন না হলে ব্যবহার করা হয়।
  • ইউনিয়নের প্রধান সীমাবদ্ধতা হল, একসঙ্গে একাধিক মেম্বারের মান রাখা সম্ভব নয়।
Content added By
Promotion

Are you sure to start over?

Loading...