跨平台的时候,一定要用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