logo

typedef في C

ال typedef هي كلمة أساسية تستخدم في برمجة C لتوفير بعض الأسماء ذات المعنى للمتغير الموجود بالفعل في لغة C برنامج ج . يتصرف بشكل مشابه عندما نحدد الاسم المستعار للأوامر. باختصار، يمكننا القول أن هذه الكلمة الأساسية تُستخدم لإعادة تعريف اسم متغير موجود بالفعل.

بناء جملة typedef

 typedef 

في بناء الجملة أعلاه، ' اسم_الموجود' هو اسم متغير موجود بالفعل بينما ' اسم مستعار' هو اسم آخر يطلق على المتغير الموجود.

على سبيل المثال، لنفترض أننا نريد إنشاء متغير من النوع كثافة العمليات غير الموقعة ، تصبح مهمة شاقة إذا أردنا الإعلان عن متغيرات متعددة من هذا النوع. للتغلب على المشكلة نستخدم محرف الكلمة الرئيسية.

 typedef unsigned int unit; 

لقد أعلنا في التصريحات أعلاه وحدة متغير من النوع int غير الموقع باستخدام محرف الكلمة الرئيسية.

الآن، يمكننا إنشاء متغيرات النوع كثافة العمليات غير الموقعة وذلك بكتابة البيان التالي:

 unit a, b; 

بدلا من الكتابة:

 unsigned int a, b; 

وحتى الآن، لاحظنا أن typedef توفر الكلمة الأساسية اختصارًا لطيفًا من خلال توفير اسم بديل لمتغير موجود بالفعل. هذه الكلمة الأساسية مفيدة عندما نتعامل مع نوع البيانات الطويلة خاصة إعلانات البنية.

جافا سكريبت إذا البيان

دعونا نفهم من خلال مثال بسيط.

 #include int main() { typedef unsigned int unit; unit i,j; i=10; j=20; printf('Value of i is :%d',i); printf('
Value of j is :%d',j); return 0; } 

انتاج |

 Value of i is :10 Value of j is :20 

استخدام typedef مع الهياكل

خذ بعين الاعتبار إعلان الهيكل أدناه:

 struct student { char name[20]; int age; }; struct student s1; 

في إعلان الهيكل أعلاه، قمنا بإنشاء متغير طالب اكتب عن طريق كتابة العبارة التالية:

 struct student s1; 

توضح العبارة أعلاه إنشاء متغير، أي s1، ولكن العبارة كبيرة جدًا. لتجنب مثل هذا البيان الكبير، نستخدم typedef الكلمة الأساسية لإنشاء متغير النوع طالب .

 struct student { char name[20]; int age; }; typedef struct student stud; stud s1, s2; 

في البيان أعلاه، قمنا بتعريف المتغير عشيق من نوع هيكل الطالب. الآن، يمكننا استخدام عشيق متغير في برنامج لإنشاء متغيرات النوع طالب هيكل .

يمكن كتابة typedef أعلاه على النحو التالي:

 typedef struct student { char name[20]; int age; } stud; stud s1,s2; 

ومن التصريحات السابقة نستنتج ذلك typedef الكلمة الرئيسية تقلل من طول التعليمات البرمجية وتعقيد أنواع البيانات. كما أنه يساعد في فهم البرنامج.

دعونا نرى مثالاً آخر حيث قمنا بكتابة إعلان البنية.

 #include typedef struct student { char name[20]; int age; }stud; int main() { stud s1; printf('Enter the details of student s1: '); printf('
Enter the name of the student:'); scanf('%s',&s1.name); printf('
Enter the age of student:'); scanf('%d',&s1.age); printf('
 Name of the student is : %s', s1.name); printf('
 Age of the student is : %d', s1.age); return 0; } 

انتاج |

 Enter the details of student s1: Enter the name of the student: Peter Enter the age of student: 28 Name of the student is : Peter Age of the student is : 28 

استخدام typedef مع المؤشرات

يمكننا أيضًا توفير اسم آخر أو اسم مستعار لمتغيرات المؤشر بمساعدة التعريف المطبعي .

على سبيل المثال، نعلن عادةً عن مؤشر، كما هو موضح أدناه:

 int* ptr; 

يمكننا إعادة تسمية متغير المؤشر أعلاه كما هو موضح أدناه:

 typedef int* ptr; 

في البيان أعلاه، قمنا بتعريف متغير النوع كثافة العمليات * . الآن، يمكننا إنشاء متغير النوع كثافة العمليات * ببساطة عن طريق استخدام ' بتر' المتغير كما هو موضح في العبارة التالية:

فئة مجردة مقابل واجهة
 ptr p1, p2 ; 

في البيان أعلاه، ص1 و p2 هي المتغيرات من النوع ' بتر' .