تخطَّ إلى المحتوى

🇨 شرح لغة C

التعدادات والاتحادات

الدرس 17 من 25· ⏱ 1 دقائق قراءة

التعداد (enum)

يعطي أسماء واضحة لمجموعة ثوابت صحيحة:

enum Day { SUN, MON, TUE, WED };  // 0, 1, 2, 3

enum Day today = TUE;
printf("%d\n", today);   // 2

يمكن تحديد القيم:

enum Status { OK = 200, NOT_FOUND = 404 };

الاتحاد (union)

يشبه الهيكل لكن كل الحقول تتشارك نفس موقع الذاكرة، فيُستخدم حقل واحد في كل مرّة:

union Value {
    int i;
    float f;
    char c;
};

union Value v;
v.i = 65;
printf("%d\n", v.i);   // 65

حجم الاتحاد = حجم أكبر حقل (توفير ذاكرة).

الفرق

  • struct: كل الحقول موجودة معًا (مجموع الأحجام).
  • union: حقل واحد فعّال في كل لحظة (حجم الأكبر).

🎯 التالي: أصناف التخزين والثوابت.

هل كان هذا الدرس مفيدًا؟