typedef的用法

typedef的4种常见用法:
1、给已定义的变量类型起个别名;
2、定义函数指针类型;
3、定义数组指针类型;
4、定义数组类型。
没加typedef之前如果是个数组,那么加typedef之后就是数组类型;
没加typedef之前如果是个函数指针,那么加typedef之后就是指针类型;
没加typedef之前如果是个指针数组,那么加typedef之后就是指针数组类型;

typedef char TA[5];	//定义字符数组类型TA,PA定义的变量是含5个char元素的数组
typedef char *TB[5];//定义指针数组类型,PB定义的变量是含5个char*指针元素的数组
typedef char (*TC)[5];//数组指针类型,PC定义的变量是一个指向数组的指针,数组含5个char型元素

一、给已定义的变量类型起个别名

typedef unsigned int uint8_t;	//uin8_t就是unsigned int的别名,这是最基础的用法
struct _person {
	char name[20];
	uin8_t age;
};
typedef struct _person person_t;
//以上两段也可以合并为一段,这种用法也很基础
struct _person {
	char name[20];
	uin8_t age;
}person_t;

二、定义函数指针类型
我们先看一下如何定义函数指针变量,再看如何定义函数指针类型
1、定义函数指针变量
(1) int (pFunc[5])(char frame, int len);
定义了一个函数指针变量pFunc,它可以指向这样的函数:返回值为int,形参为char*、int
(2) int *(pFunc[5])(int len);
定义了一个函数指针数组(5个函数指针类型),他们都可以指向这样的函数:返回值为int
,形参为int
2、定义函数指针类型
定义函数指针类型,必须使用typedef,方法就是,在“定义函数指针变量”前加上typedef。
typedef int (pFunc[5])(char frame, int len);
举例:

typedef int *(pFunc_t)(char* frame, int len);	//定义了一个类型 pFunc_t

int myfunc(char *data, int len) {
	int ret = 0;
	//其他功能代码
	return ret;
}
int main()
{
	pFunc_t pf = myfunc;	//使用类型pFunc_t来定义函数指针变量
	//其他功能代码
	return 0;
}

三、定义数组指针类型

typedef int (*pArr_t)[5];	
int main()
{
	int a[5] = {1,2,3,4,5};
	pArr_t pA;	//定义数组指针变量pA
	pA = &a;
	//其他功能代码
	return 0;
}

四、定义数组类型

typedef int arr_t[5];	
int main()
{
	arr_t a;
	a[0] = 1;
	a[1] = 2;
	a[2] = 3;
	a[3] = 4;
	a[4] = 5;
	a[5] = 6;	//错,数组下标越界
	//其他功能代码
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值