C語言中的typedef

2022-06-29 23:09:14 字數 1914 閱讀 4283

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合在一起才能表示一

個結構型別。

1

struct

tagmystruct

2;

第二給該結構體起了個別名叫 mystruct

1 typedef struct tagmystruct mystruct;

因此,mystruct實際上相當於struct tagmystruct,我們可以使用mystruct varname來定義變數。

當然,我們有時還會看到如下定義:

typedef struct

student

std,*pt;

這時是不是感覺有點奇怪,究竟std是結構體的別名,還是*pt是結構體的別名呢?這就是我今天要講的重點。

上面的**相當於執行了三步操作:

第一步:定義結構體

struct

student

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目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一 些比較複雜的型別宣告。至於...