📜  C中的Typedef

📅  最后修改于: 2020-10-22 05:49:38             🧑  作者: Mango

C语言中的typedef

typedef是在C编程中使用的关键字,用于为C程序中已经存在的变量提供一些有意义的名称。当我们为命令定义别名时,它的行为类似。简而言之,我们可以说此关键字用于重新定义已经存在的变量的名称。

typedef的语法

typedef  

在上面的语法中,“ 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 
int main()
{
typedef unsigned int unit;
unit i,j;
i=10;
j=20;
printf("Value of i is :%d",i);
printf("\nValue of j is :%d",j);
return 0;
}

输出量

对结构使用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 student类型的变量stud。现在,我们可以在程序中使用stud变量来创建struct student类型的变量。

上面的typedef可以写成:

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

从上面的声明中,我们得出结论,typedef关键字减少了代码的长度和数据类型的复杂性。它还有助于理解程序。

让我们看另一个示例,在其中键入typedef结构声明。

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

输出量

将typedef与指针一起使用

我们还可以在typedef的帮助下为指针变量提供另一个名称或别名。

例如,我们通常声明一个指针,如下所示:

int* ptr;

我们可以重命名上述指针变量,如下所示:

typedef int* ptr;

在上面的语句中,我们声明了int *类型的变量。现在,我们只需使用“ ptr”变量即可创建int *类型的变量,如以下语句所示:

ptr p1, p2 ;

在上面的语句中,p1和p2是类型’ptr’的变量。