C 语言中的typedef
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
,我们可以在一条语句中声明任意数量的指针。
注意:如果你没有任何关于指针的先验知识,一定要先学习指针。