不管是在C还是在C++中,typedef这个词都不少见,当然出现频率最高的还是在C代码中。Typedef和#define有些相似,但是更多的是不同,特别是在一些复杂的用法上。
用途1
定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针类型的多个对象。
char* pa, pb;//这不符合我们的意图
以下则可以:
typedef char*pchar;(后面是被定义的新的名字)
pchar pa,pb;
用途2
用在旧的代码中,帮助struct。
用途3
用typedef定义平台无关的类型。
平台一
typedef long double REAL;
平台二
typedef double REAL;
平台三
typedef float REAL;
在跨平台的时候,只要是改变REAL的定义就可以了。不需要改变源码。
用途4
为复杂声明定义一个新的简单的别名。
void (*b[10])(void(*)())
typedef void(*pFunParam)();
typedef void(*pFunx)(pFunParam);
pFunx b[10];
最后b就是原来的定义。