一、定义一种类型的别名,而不只是简单的宏替换,可以用作同时声明指针型的多个对象
typedef char* PCHAR;
PCHAR pa, pb;
二、用在旧的C代码中,帮助struct,C++中用不到
typedef struct tagPOINT
{
int x;
int y;
}POINT;
POINT p1; // 这样就比原来的方式少写了一个struct,比较省事,尤其在大量使用的时
三、用typedef来定义与平台无关的类型。
比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为:
typedef long double REAL;
四、(重点、难点)函数指针的配合使用
typedef 返回类型(*新类型)(参数表)
typedef char (*PTRFUN)(int);
原声明:void (*b[10]) (void (*)());
变量名为b,先替换右边部分括号里的,pFunParam为别名一:
typedef void (*pFunParam)();
再替换左边的变量b,pFunx为别名二:
typedef void (*pFunx)(pFunParam);
原声明的最简化版:
pFunx b[10];
参考: http://blog.csdn.net/qll125596718/article/details/6891881
http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html