English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C 语言基础教程

C 语言流程控制

الوظائف في لغة C

المجموعات في لغة C

الإشارات في لغة C

الصفحات في لغة C

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

كلمة رئيسية typedef في لغة C

C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的有意义的名字。也就是用于重新定义已经存在的变量的名称。

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

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

إليك إعلان الهيكل:

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 مع الإشارات

يمكننا أيضًا استخدامtypedefتقدم اسمًا آخر أو بديلاً للمتغير الإشارة.

على سبيل المثال، نحن نعلن عادةً عن إشارة، مثلما يلي:

int* ptr;

يمكننا تغيير اسم متغيرات الإشارات المذكورة أعلاه، مثلما يلي:

typedef int* ptr;

في الجملة السابقة، تم إعلانint *نوع المتغير. الآن، نحتاج فقط إلى استخدام ptr'بمجرد تعريفint *متغير من النوع، كما هو موضح في الجملة التالية:

ptr p1, p2;

في الجملة التالية،p1وp2هي' ptr'متغير من النوع.