之前有提到過typedef,它的作用就是給已有的類型重新定義一個名字。
比如當我們看別人的代碼的時候,是否注意到這樣定義變量:INT16 a;或者INT32 a;很明顯就能看出來這兩個類型都是整型的,不同的是INT16是16位,INT32是32位的整型。那具體是什麼類型的數據,它們可能長這個樣子:typedef int INT32;typedef short INT16;
既然typedef的作用是給已有的類型重新定義一個新的名字,那麼如何使用呢?先說說typedef定義類型的方法:
1、用typedef聲明新的類型名代替已有類型名
2、typedef語句的的一般形式:
typedef 原數據類型 新的類型名
如在32位平臺我們給int重新取名INT32,形如:typedef int INT32;嗯,大概就是這個樣子的。
來看個例子:
右圖中新的類型名Date代替了結構體類型,此後可以用Date來定義該結構體型變量:
如:Date day;
Date*p;(p為指向該結構體型數據的指針)
3、稍微複雜點的,用一個簡單的類型名代替複雜的類型表示方法:
聲明 NUM 為整型數組類型:typedef int NUM[5];
申明STRING為字符指針類型:
typedef char * STRING;
聲明 POINTER 為指向函數的指針類型:
typedef int (*POINTER)(int, int);
上面幾個例子相對來說是複雜了一些,當然,我們可以用一些固定的步驟去定義它,即便是再複雜一點,也完全沒問題。
用typedef定義類型的方法:
1、先按定義變量的方法寫出定義體:
int i;
2、在最前面添加typedef:
typedef int i;
3、將變量名換成新類型名:
typedef int NUM;
然後就可以用新類型名去定義變量了,如:NUM n;這樣看來,還是比較簡單的,其他稍微複雜些的也可以用同樣的方法去定義。
至此,基本會使用typedef為已有的類型重新定義一個名字了,那麼,還有幾點知識是需要知道的:
1、用typedef可以聲明各種類型名,但不能用來定義變量;
2、用typedef只是對已經存在的類型增加一個類型名,而沒有創造新的類型;
上一篇:
快速上手系列-C語言之枚舉