本文是參考譚浩強的《c程式設計》第二版一書所寫,總感覺有些重點的地方書中沒有提出來,等本人遇到其他重要用法的時候再來補充,或者大家幫我提出來,以便共同學習。
1、用typedef宣告新的型別名來代替已有的型別名
[cpp] view plain
copy
typedefintinteger;
typedeffloatreal;
這樣以下兩行**就可以等價替換了
[cpp] view plain
copy
inti,j;floata,b;
integer i,j;real a,b;
2、用typedef宣告乙個結構體
[cpp] view plain
copy
typedefstruct
date;
宣告新型別名date,它代表上面指定的乙個結構體型別,這時就可以用date定義變數。
[cpp] view plain
copy
date birthday
date *p
其中birthday是乙個結構體,具體內容同上date結構體。
下面舉個例子,是在stm32微控制器的流水燈程式中用到的乙個結構體。
[cpp] view plain
copy
typedefstruct
gpio_inittypedef;
gpio_inittypedef gpio_initstructure;
這裡結構體又巢狀了乙個2個結構體,gpiospeed_typedef、gpiomode_typedef,他們有著跟本結構體相同的定義方式,我們來看一下:
[cpp] view plain
copy
typedefenum
gpiospeed_typedef;
[cpp] view plain
copy
typedefenum
gpiomode_typedef;
上面我們用gpio_inittypedef gpio_initstructure來定義了乙個gpio_initstructure結構體,他的元素跟gpio_inittypedef一樣,我們可以用下面的語句方式來對結構體進行填充
[cpp] view plain
copy
gpio_initstructure.gpio_pin = ds1_pin|ds2_pin|ds3_pin|ds4_pin;
gpio_initstructure.gpio_mode = gpio_mode_out_pp;
gpio_initstructure.gpio_speed = gpio_speed_50mhz;
3、用typedef宣告陣列
如定義陣列,原來用如下形式:
[cpp] view plain
copy
inta[10],b[10],c[10],d[10];
由於都是一維陣列,大小也相同,可以先將此陣列型別宣告為乙個名字:然後用arr區定義陣列變數:
[cpp] view plain
copy
typedefintarr[10];
arr a,b,c,d;
C語言中typedef用法
c語言中typedef用法 1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些...
c語言中typedef的用法
typedef struct student linklist linklist head 以上定義了乙個新的結構體student,並將結構體起了乙個新的別名linklist 結構體中不用typedef也是可以的,定義變數時需要加上struct student struct student stru...
C語言中typedef用法詳解
在c語言中,經常有如下的用法 typedef struct tag mytype,myptr 一旦通過如上定以後,就可以用mytype來定義struct tag結構了。以前我使用typedef的時候,是按照其字面意思理解的,所以進入了乙個誤區。比如說我想定義myint為int型別,我用的 如下 ty...