跨平台的时候,一定要用typedef定义数据类型

跨平台的时候,一定要用typedef定义数据类型

 

不同的程序运行平台所支持的数据类型会有少许区别,采用typedef方便跨平台移植

例如:平台 A 64位数据类型为long double ,而平台 B 64位数据类型为long double,

若想程序运行于平台A,则在程序之前申明 typedef long double REAL

若想移植到平台B,则只需更改 typedef double REAL

 

typedef的其他功能

  • 复杂数据类型名称的简化

例如有一个复杂的定义:void (*b[10])(void (*)(int,int));

为了方便,先把数组符号“[]”去掉,那么剩下:void (*b)(void (*)(int,int));

右侧的void (*)(int,int)是一个指针类型,于是先为这个指针类型定义一个别名:typedef void(*pFunParam)();

于是初始定义变成了:void (*b)(pFunParam);

可知,b是一个无返回值,参数类型为pFunParam的函数指针,再使用别名:typedef void (*pFunx)(pFunParam);

于是原来的申明语句就可以表示成:pFunx b[10];

  • 增强代码的可读性
  • 避免错误

后记:typedef好适合用来给别人挖坑哦:D

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值