最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

第 23 講:typedef 關(guān)鍵字

2021-10-04 03:24 作者:SunnieShine  | 我要投稿

前文我們講完了所有三種自定義類型,也說明了它們的基本使用方式和模式,今天我們來看點(diǎn)不一樣的。我們把這三種類型通過定義類型關(guān)鍵字 typedef 來改變它們的定義寫法,甚至也可以用它把前文學(xué)到的所有類型都改個(gè)名字。


定義基本類型

我們可以使用 typedef 關(guān)鍵字,把一個(gè)基本類型換一個(gè)名字。這樣的話,所有程序代碼里將都可以使用這個(gè)替換的名稱(當(dāng)然也可以用原名)。

通過 typedef int Int32 這樣的定義后,后面就可以使用 Int32 來替換 int 的定義方式了。

這種用法實(shí)際上也出現(xiàn)在很多場(chǎng)合,例如在 C 語言的文件里,經(jīng)常將一個(gè)無符號(hào)的整數(shù) unsigned int 定義為長度類型 size_t,這種定義方式導(dǎo)致了我們一眼就看得出這是表示長度的參數(shù),我們就不會(huì)傳入一個(gè)負(fù)數(shù)數(shù)值,也不會(huì)傳入一個(gè)小數(shù)。


定義指針變量類型

我們也可以拿這個(gè)定義關(guān)鍵字把指針類型改變類型名稱。

這樣的定義方式可以使得把 int * 改為 IntPtr,后續(xù)就可以直接用這種定義符號(hào)來為指針類型作出定義了。不過需要注意的是,定義為指針類型后,后面的使用和沒有定義的方式完全是一樣的,只有定義語句的類型名稱這里可以看到不同的地方。


定義數(shù)組變量類型

我們可以使用 typedef 為數(shù)組定義新的名稱。寫法和數(shù)組變量的聲明差不多,只是這一次把數(shù)組變量改為了數(shù)組類型,寫在對(duì)應(yīng)位置上。

定義好后,數(shù)組類型就可以直接用了,把 IntArr 這種定義好的類型放在類型名稱的位置上,類似于 int i 這樣的定義默認(rèn),先類型后名稱。然后后面的使用就和數(shù)組使用方式完全一樣。

不過需要你注意的是,數(shù)組變量類型需要你為其賦準(zhǔn)確的數(shù)組大小的數(shù)值。和前文一樣,你不能定義 VLA 類型在這個(gè) typedef 語句上。


定義數(shù)組指針類型

我們可以將復(fù)雜的類型改為很簡單的類型,這也是 typedef 的一大功能。

試想一下,數(shù)組指針的寫法是這樣的:

這表示一個(gè)指向長度為 20 的一維數(shù)組的指針。這種寫法很多時(shí)候都是很不好看和不好理解的,所以我們嘗試將其定義為簡單類型:

這樣就可以了使用 ptr 變量來指向 arr 數(shù)組了。而且,它的使用方式和數(shù)組指針一樣。

先由 *ptr 來獲取指向的數(shù)組信息,然后再在后面添加索引器 [] 來獲取指定位置。當(dāng)然,你也可以寫成指針寫法:

定義函數(shù)指針類型

寫法完全類似于前文的方式,我們定義一個(gè)函數(shù)指針,然后讓變量 ptr 直接指向函數(shù)即可。


函數(shù)傳參也可以用哦!

而且,這樣的使用可以到任意位置,包括前面的數(shù)組指針、數(shù)組變量、指針變量,也都可以用到函數(shù)傳參的地方上來。例如:

這是前文用到的冒泡排序法,這個(gè)算法把參數(shù)類型經(jīng)過 typedef 定義后就可以直接這么書寫了。當(dāng)然,數(shù)組長度是可以不規(guī)定的,但 typedef 需要有這一個(gè)定義,所以我們不得不書寫這個(gè)數(shù)字(當(dāng)然,這個(gè)數(shù)字在這里顯然是沒啥用處的)。


結(jié)構(gòu)體、聯(lián)合體和枚舉類型

經(jīng)過這樣的定義方式后,Week、StudentTag 三個(gè)單詞就可以作為 enum weekstruct studentunion tag 的替換類型名稱了。你就不用再去書寫前面的這個(gè)關(guān)鍵字 enum、structunion 了。

不過,這三個(gè)定義是把類型名稱放后面的。


其它復(fù)雜類型的定義

還有一些復(fù)雜的類型,例如函數(shù)指針的數(shù)組,這些類型我們可以采用兩次定義的方式來簡化:

第一句定義了一個(gè)函數(shù)指針類型 FuncPtr 類型,第二句則直接類似于前面定義數(shù)組的方式,把數(shù)組元素類型放在開頭,數(shù)組聲明長度的中括號(hào)放在末尾,然后中間寫定義的類型,這樣就可以分步定義了。邏輯也不至于很復(fù)雜。你也可以一步搞定:

這樣也是可以的。

第 23 講:typedef 關(guān)鍵字的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
沂水县| 界首市| 股票| 东山县| 广安市| 绥滨县| 永康市| 浙江省| 抚远县| 翼城县| 孝感市| 黎川县| 库伦旗| 开化县| 贡觉县| 冕宁县| 义马市| 白城市| 夏津县| 吉水县| 大同县| 沧州市| 双江| 兴仁县| 措勤县| 惠来县| 鞍山市| 兴城市| 清水河县| 鄢陵县| 德昌县| 长武县| 周宁县| 武威市| 日照市| 张掖市| 中西区| 诸暨市| 宝兴县| 论坛| 周至县|