typedef常用方法

typedef是一个一直被忽略的关键字,它的作用就是给已知数据类型命别名,经常看到,但自己的代码中用的很少。今天看《嵌入式操作系统uC/OS-II》的时候看到了一段关于typedef应用总结,讲得很有道理,记录下来。以下内容有参考《嵌入式操作系统uC/OS-II》p43~p45

1、简化复杂数据类型名称。
typedef的典型应用就可以用一个较为简短的别名去表示一个复杂数据类型。例如简化函数指针类型。


void(*)(int ,int );//函数指针

typedef void (*PFON)(int,int);//简化数据类型

PFON function;//定义一个void(*)(int,int)数据类型的变量

当程序中需要定义较多的这种类型的指针变量时,typedef的优势就发挥出来了,如果觉得还只是可有可无,可以再看一个复杂点的。

void(*b[10])(void (*)(int,int));

typedef void (*pFunParam)(int,int);
typedef void (*pFun)(pFunPram);

pFun b[10];

2、用typedef来定义与平台无关的数据类型
typedef在单片机的代码中最常见,我以为是C编程方式的原因,现在才明白,它们有一部分原因是因为程序跨平台的需要。例如同一个数据类型,在A平台叫long doube,在B平台叫doube类型,程序现在要从A平台移植到B平台,于是可以通过typedef实现最少的修改。

typedef double REAL//在A平台下运行,以后用到double的地方都用REAL代替

移植到B平台只需要修改typedef为

typedef long double REAL //在B平台下运行,以后用到long double的地方都用REAL代替

这样只要修改一个宏就是解决的问题工作量就小很多了。

3、增强代码的可读性
记得学校刚毕业的第一份工作中要抓TCP数据包,那时候用到了一些系统API。当时遇到了很多不知道的数据类型,当时就傻了,这下完了,这么多没见过的数据类型,要怎么下手。后来跟进去看到都是些typedef,只是为了增强代码的可读性。

typedef int AGE
typedef int SIZE
typedef int WORD
...

4、避免错误
定义指针 变量时要使用符号“*”,但这个符号容易产生误解,如

int* pa,pb

本想定义两个指针,结果没注意漏掉了一个符号“*”。为了避免上述问题,可以使用typedef

typedef int* PINT

PINT pa,pb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值