C 语言中的typedef

原文:https://www.studytonight.com/c/typedef.php

typedef是一个关键字,在 C 语言中用来给现有的数据类型指定替代名称。它主要用于用户定义的数据类型,当数据类型的名称在程序中使用变得稍微复杂时。以下是使用typedef的一般语法,

typedef <existing_name> <alias_name>

让我们举个例子看看typedef实际上是如何工作的。

typedef unsigned long ulong;

上面的陈述定义了术语unsigned long的术语ulong。现在这个ulong标识符可以用来定义unsigned long类型变量。

ulong i, j;

typedef 的应用

typedef也可以用来给用户定义的数据类型命名。让我们看看它在结构中的应用。

 typedef struct
{
    type member1;
    type member2;
    type member3;
} type_name;

这里 type_name 代表与之相关的结构定义。现在这个类型名称可以用来声明这个结构类型的变量。

type_name t1, t2;

使用 typedef 的结构定义

让我们举一个简单的代码例子来理解如何使用typedef关键字在 C 语言中定义一个结构。

#include<stdio.h>
#include<string.h>

typedef struct employee
{
    char name[50];
    int salary;
}emp;

void main( )
{
    emp e1;
    printf("\nEnter Employee record:\n");
    printf("\nEmployee name:\t");
    scanf("%s", e1.name);
    printf("\nEnter Employee salary: \t");
    scanf("%d", &e1.salary);
    printf("\nstudent name is %s", e1.name);
    printf("\nroll is %d", e1.salary);
}

typedef和指针

typedef也可以用来给指针取别名。这里有一个例子,在指针声明期间使用typedef是有益的。

在指针中*绑定到右边而不是左边。

int* x, y;

通过这个声明语句,我们实际上是将x声明为类型为int的指针,而y将声明为普通的int变量。

typedef int* IntPtr;
IntPtr x, y, z;

但是如果我们像上面的例子一样使用typedef,我们可以在一条语句中声明任意数量的指针。

注意:如果你没有任何关于指针的先验知识,一定要先学习指针