typedef 型別定義
typedef 是給各種資料型別定義新名字,主要是用來簡潔的表示一些複雜的資料型別,比如說指向其他物件指標之類
defined也有這個意思,但是define巨集只是進行一種簡單的替換。
普通的變數宣告方式, 比如
宣告乙個字元型變數 char c;
宣告乙個字元型指標變數為 char *cptr;
fptr被宣告為乙個返回為void形參為(int,int)型別的函式指標void (*fptr)(int, int);
但是當我們在這兩個宣告之前加上typedef關鍵字的時候
typedef char c;
這個時候,c就是乙個char的乙個別名,在域作用範圍之內,我們都可以用c表示char資料型別
typedef char *cptr ;
同理 這個時候cptr就是char *型別的乙個別名,cptr就意味著是char *資料型別
typedef void (*fptr)(int, int);
這之後的作用域之類,fptr就是該型別函式指標資料型別的別名。
例如fptr p1,p2;就是宣告 p1 p2這兩個該型別函式指標變數型別。
在typedef 與defined的區別
typedef可以看場一種徹底封裝的資料型別,在這之後的資料宣告之中,新的別名就可以一種資料型別的表示,其用法和int,char幾乎一樣。
但是defined巨集就是將該相同字元文字進行乙個簡單的替換。
在用法上
1:typedef不能進行對符號型別名的拓展
比如說typedef int num;
unsigned num i;
非法,錯去,編譯器會報錯。
但是若是
defined num int;
unsigned num i;
這個是完全沒有問題的,i就是unsigned int 資料型別
2:在連續幾個變數的宣告中,typedef都能夠保證宣告的變數型別均為同一種型別,但是#define就無法保證
例如:typedef char *cp;
cp p1,p2;
p1 p2都是char *型別的變數
#define cp char*;
cp p1,p2;
在預編譯的時候cp p1,p2;會展開成char *p1,p2;
則這個時候 p1是char *型別的變數 p2則是char 型別的變數。
C語言中typedef用法
c語言中typedef用法 1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些...
C語言中typedef的用法
本文是參考譚浩強的 c程式設計 第二版一書所寫,總感覺有些重點的地方書中沒有提出來,等本人遇到其他重要用法的時候再來補充,或者大家幫我提出來,以便共同學習。1 用typedef宣告新的型別名來代替已有的型別名 cpp view plain copy typedefintinteger typedef...
c語言中typedef的用法
typedef struct student linklist linklist head 以上定義了乙個新的結構體student,並將結構體起了乙個新的別名linklist 結構體中不用typedef也是可以的,定義變數時需要加上struct student struct student stru...