一、定義一種類型的別名,而不只是簡單的宏替換,可以用作同時聲明指針型的多個對象
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