العودة إلى الدورة

التعدادات (enum) وتعريف الأنواع (typedef)

لغة C: من الصفر إلى الاحتراف - الدليل الشامل للمبتدئين

الدرس 46: التعدادات (enum) وتعريف الأنواع (typedef)

1. التعدادات (enum)

التعداد هو نوع بيانات معرف من قبل المستخدم يخصص أسماءً (معرفات) لثوابت عددية صحيحة. هذا يجعل الكود أكثر قابلية للقراءة وأسهل في الصيانة مقارنة باستخدام أرقام سحرية خام.

القاعدة: c enum enum_name { constant1, constant2, ... };

مثال

بشكل افتراضي، تكون قيمة JANUARY هي 0، و FEBRUARY هي 1، وهكذا.

c enum Month { JANUARY, // 0 FEBRUARY, // 1 MARCH = 3, // تعيين صريح للقيمة 3 APRIL // تصبح 4 تلقائياً };

int main() { enum Month current_month = JANUARY;

if (current_month == 0) {
    printf("إنه بداية العام.\n");
}

printf("قيمة April هي: %d\n", APRIL); // 4
return 0;

}

2. كلمة typedef المفتاحية

توفر typedef آلية لإنشاء أسماء مستعارة (aliases) لأنواع البيانات الموجودة، مما يبسط التصريحات المعقدة مثل الهياكل والمؤشرات.

تبسيط تصريحات الهياكل

c // قبل استخدام typedef: struct Person { ... }; struct Person p1;

// بعد استخدام typedef: typedef struct { char name[50]; int age; } Person; // أصبح 'Person' الآن اسماً مستعاراً للهيكل

Person p2; // لا داعي لكلمة 'struct' هنا

تبسيط المؤشرات

c typedef int *IntPtr; IntPtr p, q; // كلاهما p و q مؤشرات لأعداد صحيحة // بدون استخدام typedef: int *p, q; (فقط p هو المؤشر)