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

typedef

تسمية الأنواع typedef

typedef يعطي اسمًا بديلًا (alias) لنوع موجود — الأشيع لتقصير struct الطويلة أو توضيح أنواع المؤشرات المعقّدة.

typedef لا ينشئ نوعًا جديدًا فعليًا، بل مجرّد اسم مستعار لنوع موجود مسبقًا. الاستخدام الأشيع في C هو مع struct: بدل كتابة struct Point في كل مكان، تعرّف typedef struct { ... } Point; فيصبح Point وحدها كافية كنوع، دون الحاجة لتكرار كلمة struct.

يُستخدم أيضًا لتبسيط توقيعات المؤشرات المعقّدة مثل مؤشرات الدوال، حيث تصبح القراءة صعبة بدون اسم مستعار واضح.

الصياغة

typedef ExistingType NewName;
typedef struct { ... } StructAlias;

📄 مثال

typedef struct {
    int x;
    int y;
} Point;

Point p1 = {1, 2};   // بدون كتابة struct Point

typedef int (*Operation)(int, int);  // اسم مستعار لمؤشر دالة
Operation op = add;

أهم النقاط

العنصرالوظيفة
typedef struct {...} Name;الشكل الأشيع: هيكل مجهول الاسم مع اسم مستعار مباشر
typedef existing new;اسم بديل لنوع بسيط مثل typedef unsigned int uint;
typedef مع مؤشر دالةيبسّط توقيعات معقّدة يصعب قراءتها مباشرة

💡 نصائح عملية

  • استخدم typedef مع struct دائمًا في مشاريع C الحديثة لتفادي تكرار كلمة struct
  • اختر أسماء typedef واضحة (غالبًا بحرف كبير أول) لتمييزها عن المتغيّرات

⚠️ أخطاء شائعة

  • الظن أن typedef ينشئ نوعًا مختلفًا فعليًا — هو مجرّد اسم بديل، والتحويل بينه والأصل ضمني دائمًا
  • تعريف typedef داخل دالة وتوقّع رؤيته بملف .c آخر دون هيدر مشترك

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار C الكامل بالعربي.