কম্পিউটার টিউটোরিয়াল

সি ভাষায় স্ট্রাকচার এবং ইউনিয়নের পার্থক্য উদাহরণসহ

স্ট্রাকচার (Structure) vs ইউনিয়ন (Union) - তুলনাত্মক আলোচনা

বিষয়স্ট্রাকচার (struct)ইউনিয়ন (union)
সংজ্ঞা বিভিন্ন ডেটা টাইপের আইটেমগুলোর সমষ্টি, একক নামের অধীনে গ্রুপ করা। একই মেমরি লোকেশন শেয়ার করে বিভিন্ন ডেটা টাইপের ভেরিয়েবল।
কীওয়ার্ড struct union
সিনট্যাক্স
struct tag {
    type member1;
    type member2;
};
union tag {
    type member1;
    type member2;
};
মেমরি অ্যালোকেশন সকল মেম্বারের সাইজের যোগফল। প্রতিটি মেম্বারের আলাদা মেমরি। সর্বোচ্চ মেম্বারের সাইজ। একবারে শুধু একটি মেম্বার থাকে।
এক্সেস সকল মেম্বার একসাথে এক্সেসযোগ্য। একবারে একটি মেম্বার এক্সেসযোগ্য।
ব্যবহার রিলেটেড ডেটা গ্রুপ করার জন্য। মেমরি বাঁচাতে / টাইপ-পানিং (type-punning) জন্য।

মেমরি তুলনা উদাহরণ

struct Size {
    double a;  // 8 bytes
    int b;     // 4 bytes
    char c;    // 1 byte
    float d;   // 4 bytes
}; // Total = 24 bytes (padding সহ)

union Size {
    double a;  // 8 bytes
    int b;     // 4 bytes
    char c;    // 1 byte
    float d;   // 4 bytes
}; // Total = 8 bytes (সর্বোচ্চ = double)

সি প্রোগ্রাম: স্ট্রাকচার সাইজ

#include <stdio.h>

struct size {
    double a;
    int b;
    char c;
    float d;
};

int main() {
    printf("Structure size = %zu bytes\n", sizeof(struct size));
    return 0;
}

আউটপুট: 24

সি প্রোগ্রাম: ইউনিয়ন সাইজ

#include <stdio.h>

union size {
    double a;
    int b;
    char c;
    float d;
};

int main() {
    printf("Union size = %zu bytes\n", sizeof(union size));
    return 0;
}

আউটপুট: 8

সারসংক্ষেপ

  • স্ট্রাকচার: সব মেম্বারের জন্য আলাদা মেমরি → বড় সাইজ, সব ডেটা একসাথে উপলব্ধ।
  • ইউনিয়ন: শেয়ারড মেমরি → ছোট সাইজ, একবারে একটি ডেটা।
  1. MySQL-এ DATEDIFF() ব্যবহার করে দিনের পার্থক্য বের করে স্যালারি ক্যালকুলেট করা

  2. সি ভাষায় কনস্ট্যান্ট (Constant) কী এবং উদাহরণ

  3. iCloud+-এ Hide My Email এবং Sign in with Apple-এর পার্থক্য

  4. C#-তে Class এবং Structure-এর পার্থক্য