typedef是c/c++代碼中經常用到的一個關鍵字. 他的主要做用是給變量類型定義一個別名.
從而達到代碼簡化, 促進跨平臺開發的目的.
下面是typedef的最經常的用法:
typedef struct{
int a;
int b;
}MY_TYPE;
這里把一個未命名結構直接取了一個叫MY_TYPE的別名, 這樣如果你想定義結構的實例的時候就可以這樣:
MY_TYPE tmp;
這是typedef的第一種用法. 比較簡單. 就是 typedef 原變量類型 別名
相似的例子:
typedef unsigned long DWORD; 無符號長型
typedef void far *LPVOID; //void far *是原變量類型, 表示一個void 型指針(far 在32位系統里面已經沒有意義了)
等等
typedef還有第二種用法. 可能這種用法初學者沒有接觸過.
比如:
typedef int (*MYFUN)(int, int);
這種用法一般用在給函數定義別名的時候.(其實質還是和上面的用法一樣的)
上面的例子定義MYFUN 是一個函數指針, 函數類型是帶兩個int 參數, 返回一個int
在分析這種形式的定義的時候可以用下面的方法:
先去掉typedef 和別名, 剩下的就是原變量的類型.
比如上面的例子:
去掉typedef和MYFUN以后就剩:
int (*)(int, int)
讀了我前面一課里面討論的 <<細說如何確定一個變量的類型>>的朋友應該很容易就得出這個類型指的時是
一個函數指針, 函數類型是帶兩個int 參數, 返回一個int