typedef 的講解與應用例項
/*用法一:型別的重定義
*/typedef unsigned
char
u8;typedef
char *pchar;
......
這裡的第一句是給unsigned char型別重新起個別名,叫 u8 應用時看到u8 定義的變數,就相當於unsigned char 型別,兩者是完全等價的。同理第二句是給char *
起了個別名pchar ,即 pchar 型別代表著指向字串型別的指標。
1/*用法二:與結構體結合使用
*/2 typedef struct
tagmystruct
3mystruct;
這個**實際上相當於進行了兩個操作:
第一宣告了乙個結構體名為 tagmystruct
tagmystruct稱為「tag」,即「標籤」,實際上是乙個臨時名字,struct 關鍵字和 tagmystruct一起,構成了這個結構型別,不論是否有typedef,這個結構都存在。
我們可以用struct tagmystruct varname來定義變數,但要注意,使用tagmystruct varname來定義變數是不對的,因為struct 和tagmystruct合在一起才能表示一
個結構型別。
1struct
tagmystruct
2;
第二給該結構體起了個別名叫 mystruct
1 typedef struct tagmystruct mystruct;
因此,mystruct實際上相當於struct tagmystruct,我們可以使用mystruct varname來定義變數。
當然,我們有時還會看到如下定義:
typedef structstudent
std,*pt;
這時是不是感覺有點奇怪,究竟std是結構體的別名,還是*pt是結構體的別名呢?這就是我今天要講的重點。
上面的**相當於執行了三步操作:
第一步:定義結構體
structstudent
std;
第二步:給結構體重命名
typedef struct student std;
第三步:給結構體指標型別重新命名
typedef student struct * pt;
這時,我們可以用pt來宣告結構體指標型別的變數了,不用再寫 struct student * kk; 直接寫 pt kk; 簡單明瞭。
下面給個簡單的例項:
1/*2* 程式名稱:typedef 的簡單例項3*
4* veis宣告。5*/
6 #include 7 #include
8#define n 20
9 typedef struct
student
10std,*pt; /*
這裡的 pt 相當於乙個 struct student * 型別;而 std 則是給結構體student起的別名
*/15
void
main()
16
ps:心動不如行動,看完自己嘗試去寫,只有去寫去思考,你才能更好的理解和掌握一種東西。
本文作者能力有限,若本文有什麼講錯的地方歡迎指出,共同進步。-----------------veis
C語言中的typedef
typedef是用於定義新的型別名,在程式設計中可以用typedef來定義新的型別名來代替已有的型別名 格式 typedef 已有型別名 新的型別名 通俗點說,就是為已有的型別取別名,例如 老鼠?又叫耗子?老鼠也是它,耗子也是他 但不能取新的型別名,也就是說不能憑空造出來乙個型別,必須是在已有的型別...
C語言中typedef用法
c語言中typedef用法 1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些...
C語言中的typedef問題
1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料類 型 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一 些比較複雜的型別宣告。至於...