typedef 是語言的一部分;
,它本身並不在編譯過程中進行,而是在這之前的就已經完成了。
要理解兩者的關鍵區別,可以這麼來考慮:
,相當於產生了一個新的變量類型(這點與struct 類似,待會會與struct 進行類比來增進理解)。而#define 僅僅是進行。
區別體現在兩個方面:
首先, 可以用其他類型說明符對宏類型名,但typedef 所定義的類型名卻。
peach int
第二個區別,在連續幾個變量的聲明中,用typedef 定義的類型能夠,而用。
intp int * *
typedef int * int_p;
int_p c, d; //c, d都是指向int變量的指針變量!
參考文獻