typedef 與 #define 類似,但是 #define 是做字串直接的替換,typedef 像是幫型態類別重新取名。
typedef
1.一次宣告多個指標型態的物件
2.typedef 用在 struct,以往每在宣告 struct 的新物件時,都要帶上 struct
3.用 typedef 來定義與平台無關的型態
4.為複雜的宣告定義一個新的簡單的別名
1.不僅僅是簡單的替換。可以作為同時宣告多個指標的物件。
char* pa, pb;
typedef char* PCHAR;
PCHAR pa, pb;
#define char* PCHAR
PCHAR pa, pb;
//實際上變成只有 pa 是指標型態
//char* pa; char pb;
2.
struct tagPOINT1
{
int x;
int y;
};
struct tagPOINT1 p1;
- - - - - - -
typedef struct tagPOINT
{
int x;
int y;
}POINT;
POINT p1;
3.
typedef int number_max;
有個變數只用來存 2 byte的大小,想要換平台,改用更大的型態,這樣原本宣告的新名稱不用變動。
typedef DWORD number_max;
4. 複雜宣告的簡化
void (*b[10])(void(*)());
typedef void(*pFunParam)();
typedef void(pFunx)(pFunParam);
簡化後
pFunx b[10];
沒有留言:
張貼留言