2017年6月20日 星期二

typedef的用法

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];



沒有留言:

張貼留言