typedef
中文名:聲明類型
性質(zhì):聲明定義
差別:與宏定義有些差異
typedef和#define的區(qū)別
(1)原理不同
#define是C語(yǔ)言中定義的語(yǔ)法棺聊,是預(yù)處理指令,在預(yù)處理時(shí)進(jìn)行簡(jiǎn)單而機(jī)械的字符串替換贞谓,不作正確性檢查限佩。
typedef是關(guān)鍵字,在編譯時(shí)處理裸弦,有類型檢查功能祟同。
(2)功能不同
typedef用來(lái)定義類型的別名,起到類型易于記憶的功能理疙。
#define不只是可以為類型取別名晕城,還可以定義常量、變量窖贤、編譯開關(guān)等砖顷。
(3)作用域不同
#define沒(méi)有作用域的限制,只要是之前預(yù)定義過(guò)的宏赃梧,在以后的程序中都可以使用滤蝠,而typedef有自己的作用域。
(4)對(duì)指針的操作不同
#define INTPTR1 int*
typedef int* INTPTR2;
INTPTR1 p1, p2;
INTPTR2 p3, p4;
含義分別為授嘀,
聲明一個(gè)指針變量p1和一個(gè)整型變量p2
聲明兩個(gè)指針變量p3物咳、p4