typedef與typedefstruct用法詳解_第1頁(yè)
已閱讀1頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、typedef聲明,簡(jiǎn)稱typedef,為現(xiàn)有類型創(chuàng)建一個(gè)新的名字。比如人們常常使用typedef來(lái)編寫更美觀和可讀的代碼。所謂美觀,意指typedef能隱藏笨拙的語(yǔ)法構(gòu)造以及平臺(tái)相關(guān)的數(shù)據(jù)類型,從而增強(qiáng)可移植性和以及未來(lái)的可維護(hù)性。本文下面將竭盡全力來(lái)揭示本文下面將竭盡全力來(lái)揭示typedef強(qiáng)大功能以及如何避免一些常見(jiàn)的強(qiáng)大功能以及如何避免一些常見(jiàn)的陷阱。陷阱。1.定義易于記憶的類型名定義易于記憶的類型名typedef使用最多的地方

2、是創(chuàng)建易于記憶的類型名,用它來(lái)歸檔程序員的意圖。類型出現(xiàn)在所聲明的變量名字中,位于typedef關(guān)鍵字右邊。例如:typedefintsize此聲明定義了一個(gè)int的同義字,名字為size。注意注意typedef并不創(chuàng)建新的并不創(chuàng)建新的類型。類型。它僅僅為現(xiàn)有類型添加一個(gè)同義字。你可以在任何需要int的上下文中使用size:voidmeasure(sizepsz)sizearray[4]sizelen=file.getlength()s

3、td::vectvstypedef還可以掩飾符合類型,如指針和數(shù)組。例如,你不用象下面這樣重復(fù)定義有81個(gè)字符元素的數(shù)組:line[81]text[81]定義一個(gè)定義一個(gè)typedef,每當(dāng)要用到相同類型和大小的數(shù)組時(shí),可以這樣:,每當(dāng)要用到相同類型和大小的數(shù)組時(shí),可以這樣:typedefLine[81]Linetextsecondlinegetline(text)同樣,可以象下面這樣隱藏指針語(yǔ)法:typedefpstrintmystr

4、cmp(pstrpstr)這里將帶我們到達(dá)第一個(gè)typedef陷阱。標(biāo)準(zhǔn)函數(shù)strcmp()有兩個(gè)‘const類型的參數(shù)。因此,它可能會(huì)誤導(dǎo)人們象下面這樣聲明mystrcmp():intmystrcmp(constpstrconstpstr)存儲(chǔ)特性;它只是說(shuō)在語(yǔ)句構(gòu)成上,typedef聲明看起來(lái)象static,extern等類型的變量聲明。下面將帶到第二個(gè)陷阱:typedefregisterintFAST_COUNTER錯(cuò)誤編譯通不過(guò)

5、。問(wèn)題出在你不能在聲明中有多個(gè)存儲(chǔ)類關(guān)鍵字。編譯通不過(guò)。問(wèn)題出在你不能在聲明中有多個(gè)存儲(chǔ)類關(guān)鍵字。因?yàn)榉?hào)typedef已經(jīng)占據(jù)了存儲(chǔ)類關(guān)鍵字的位置,在typedef聲明中不能用register(或任何其它存儲(chǔ)類關(guān)鍵字)。4.促進(jìn)跨平臺(tái)開發(fā)促進(jìn)跨平臺(tái)開發(fā)typedef有另外一個(gè)重要的用途,那就是定義機(jī)器無(wú)關(guān)的類型,例如,你可以定義一個(gè)叫REAL的浮點(diǎn)類型,在目標(biāo)機(jī)器上它可以i獲得最高的精度:typedeflongdoubleREAL在不

6、支持longdouble的機(jī)器上,該typedef看起來(lái)會(huì)是下面這樣:typedefdoubleREAL并且,在連double都不支持的機(jī)器上,該typedef看起來(lái)會(huì)是這樣:、typedeffloatREAL你不用對(duì)源代碼做任何修改,便可以在每一種平臺(tái)上編譯這個(gè)使用REAL類型的應(yīng)用程序。唯一要改的是typedef本身。在大多數(shù)情況下,甚至這個(gè)微小的變動(dòng)完全都可以通過(guò)奇妙的條件編譯來(lái)自動(dòng)實(shí)現(xiàn)。不是嗎標(biāo)準(zhǔn)庫(kù)廣泛地使用typedef來(lái)創(chuàng)建

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論