【C语言】typedef关键字

目录

  • 一、typedef关键字介绍
  • 二、配合结构体使用
  • 三、typedef和结构体案例

一、typedef关键字介绍

   t y p e d e f typedef typedef 关键字是用来给其他变量类型改名的关键字,C语言允许用户使用 t y p e d e f typedef typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。定义如下:

	typedef unsigned int u8;
	typedef unsigned int u1;
	typedef int arr[10];


案例:

#include

typedef unsigned int u8;
typedef unsigned int u16;
typedef int arr[10];

int main()
{
	u8 a = 100;
	u16 b = 200;
	
	arr c;
	c[0] = 10;
	
	printf("a = %d\n",a);
	printf("b = %d\n",b);
	printf("c[0] = %d\n",c[0]);
	
	
	return 0;
}

运行结果:
【C语言】typedef关键字_第1张图片


二、配合结构体使用

   给结构体变量起名字,取代了结构体变量定义繁杂的过程:

#include

struct Test
{
	int idata;
	char cdata;
	double ddata;
};

typedef struct Test T1;

int main()
{
	T1 t1;
	t1.idata = 100;
	
	printf("idata = %d\n",t1.idata);
	
	return 0;
}

运行结果:
【C语言】typedef关键字_第2张图片

还有一种常见写法:

#include

typedef struct
{
	int idata;
	char cdata;
	double ddata;
}T1;

int main()
{
	T1 t1;
	t1.idata = 100;
	
	printf("idata = %d\n",t1.idata);
	
	return 0;
}



三、typedef和结构体案例

#include

typedef struct
{
	int num;
	char name[32];
	char sex;
}Person,*pPerson;

void printInfo(Person p)
{
	printf("%d号姐姐:%s,%c\n",p.num,p.name,p.sex);
}

void printInfo1(pPerson pp)
{
	printf("%d号姐姐:%s,%c\n",pp->num,pp->name,pp->sex);
}

void printInfo2(Person *pp)
{
	printf("%d号姐姐:%s,%c\n",pp->num,pp->name,pp->sex);
}

int main()
{
	Person p1 = {1,"莉莉",'g'};
	Person p2 = {2,"美美",'g'};
	
	pPerson pp1 = &p1;
	pPerson pp2 = &p2;
	
	printInfo(p1);
	printInfo(p2);
	
	printInfo1(pp1);
	printInfo1(pp2);
	
	Person *pp3 = &p1;
	Person *pp4 = &p2;
	
	printInfo2(pp3);
	printInfo2(pp4);
	
	return 0;
}

运行结果:
【C语言】typedef关键字_第3张图片

你可能感兴趣的:(C语言,c语言,c++,开发语言)