English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的有意义的名字。也就是用于重新定义已经存在的变量的名称。
typedef <existing_name> <alias_name>
在以上语法中,“ existing_name”是已经存在的变量的名称,而“ alias_name"是给现有变量赋予的另一个名称。
例如,假设我们要创建一个类型为unsigned int的变量,那么如果我们要声明此类型的多个变量,那么它将变得很繁琐。为了克服这个问题,我们使用typedef关键字。
typedef unsigned int unit;
在上面的语句中,我们使用typedef关键字声明了unsigned int类型的unit变量。
现在,我们可以通过编写以下语句来创建unsigned intمتغيرات النوع
unit a, b;
而不是写:
unsigned int a, b;
您应该已经观察到typedef关键字通过为已经存在的变量,提供代替名称来提供简化的快捷方式。当我们处理长数据类型(尤其是结构声明)时,此关键字很有用。
让我们通过一个简单的实例来理解。
#include <stdio.h> int main() { typedef unsigned int unit; unit i,j; i=10; j=20; printf("i值为 :%d", i); printf("\nj值为 :%d", j); return 0; }
نتيجة الإخراج
قيمة i هي :10 قيمة j هي :20
إليك إعلان الهيكل:
struct student { char name[20]; int age; }; struct student s1;
في إعلان الهيكل المذكور أعلاه، أنشأنا ما يليالطالبمتغيرات النوع
struct student s1;
يظهر الجملة التالية إنشاء متغير s1، ولكن هذه الجملة طويلة جدًا. لتفادي هذا الإعلان الطويل، نستخدمtypedefمفتاح، لإنشاء نوعstudentمتغيراته.
struct student { char name[20]; int age; }; typedef struct student stud; stud s1, s2;
في هذا الإعلان، نعلن عن متغيرات نوع struct studentstudالآن، يمكننا استخدامstudلإنشاءstruct studentمتغير من النوع.
يمكن كتابة typedef المذكور أعلاه كالتالي:
typedef struct student { char name[20]; int age; } stud s1, s2;
من خلال هذه البيانات المذكورة، نستنتجtypedefيقلل المفتاح من طول الكود وتعقيد أنواع البيانات. إنه يساعد أيضًا في فهم البرنامج.
لننظر في مثال آخر، حيث يتم استخدام typedef لإنشاء هيكل.
#include <stdio.h> typedef struct student { char name[20]; int age; }stud; int main() { stud s1; printf("إدخال تفاصيل الطالب s1: "); printf("\nإدخال اسم الطالب:"); scanf("%s", &s1.name); printf("\nإدخال عمر الطالب:"); scanf("%d", &s1.age); printf("\nاسم الطالب : %s", s1.name); printf("\nإدخال عمر الطالب : %d", s1.age); return 0; }
نتيجة الإخراج
إدخال تفاصيل الطالب s1: إدخال اسم الطالب: Peter إدخال عمر الطالب: 28 اسم الطالب : Peter عمر الطالب : 28
يمكننا أيضًا استخدامtypedefتقدم اسمًا آخر أو بديلاً للمتغير الإشارة.
على سبيل المثال، نحن نعلن عادةً عن إشارة، مثلما يلي:
int* ptr;
يمكننا تغيير اسم متغيرات الإشارات المذكورة أعلاه، مثلما يلي:
typedef int* ptr;
في الجملة السابقة، تم إعلانint *نوع المتغير. الآن، نحتاج فقط إلى استخدام ptr'بمجرد تعريفint *متغير من النوع، كما هو موضح في الجملة التالية:
ptr p1, p2;
في الجملة التالية،p1وp2هي' ptr'متغير من النوع.