版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、typedef聲明,簡稱typedef,為現(xiàn)有類型創(chuàng)建一個新的名字。比如人們常常使用typedef來編寫更美觀和可讀的代碼。所謂美觀,意指typedef能隱藏笨拙的語法構(gòu)造以及平臺相關(guān)的數(shù)據(jù)類型,從而增強(qiáng)可移植性和以及未來的可維護(hù)性。本文下面將竭盡全力來揭示本文下面將竭盡全力來揭示typedef強(qiáng)大功能以及如何避免一些常見的強(qiáng)大功能以及如何避免一些常見的陷阱。陷阱。1.定義易于記憶的類型名定義易于記憶的類型名typedef使用最多的地方
2、是創(chuàng)建易于記憶的類型名,用它來歸檔程序員的意圖。類型出現(xiàn)在所聲明的變量名字中,位于typedef關(guān)鍵字右邊。例如:typedefintsize此聲明定義了一個int的同義字,名字為size。注意注意typedef并不創(chuàng)建新的并不創(chuàng)建新的類型。類型。它僅僅為現(xiàn)有類型添加一個同義字。你可以在任何需要int的上下文中使用size:voidmeasure(sizepsz)sizearray[4]sizelen=file.getlength()s
3、td::vectvstypedef還可以掩飾符合類型,如指針和數(shù)組。例如,你不用象下面這樣重復(fù)定義有81個字符元素的數(shù)組:line[81]text[81]定義一個定義一個typedef,每當(dāng)要用到相同類型和大小的數(shù)組時,可以這樣:,每當(dāng)要用到相同類型和大小的數(shù)組時,可以這樣:typedefLine[81]Linetextsecondlinegetline(text)同樣,可以象下面這樣隱藏指針語法:typedefpstrintmystr
4、cmp(pstrpstr)這里將帶我們到達(dá)第一個typedef陷阱。標(biāo)準(zhǔn)函數(shù)strcmp()有兩個‘const類型的參數(shù)。因此,它可能會誤導(dǎo)人們象下面這樣聲明mystrcmp():intmystrcmp(constpstrconstpstr)存儲特性;它只是說在語句構(gòu)成上,typedef聲明看起來象static,extern等類型的變量聲明。下面將帶到第二個陷阱:typedefregisterintFAST_COUNTER錯誤編譯通不過
5、。問題出在你不能在聲明中有多個存儲類關(guān)鍵字。編譯通不過。問題出在你不能在聲明中有多個存儲類關(guān)鍵字。因?yàn)榉杢ypedef已經(jīng)占據(jù)了存儲類關(guān)鍵字的位置,在typedef聲明中不能用register(或任何其它存儲類關(guān)鍵字)。4.促進(jìn)跨平臺開發(fā)促進(jìn)跨平臺開發(fā)typedef有另外一個重要的用途,那就是定義機(jī)器無關(guān)的類型,例如,你可以定義一個叫REAL的浮點(diǎn)類型,在目標(biāo)機(jī)器上它可以i獲得最高的精度:typedeflongdoubleREAL在不
6、支持longdouble的機(jī)器上,該typedef看起來會是下面這樣:typedefdoubleREAL并且,在連double都不支持的機(jī)器上,該typedef看起來會是這樣:、typedeffloatREAL你不用對源代碼做任何修改,便可以在每一種平臺上編譯這個使用REAL類型的應(yīng)用程序。唯一要改的是typedef本身。在大多數(shù)情況下,甚至這個微小的變動完全都可以通過奇妙的條件編譯來自動實(shí)現(xiàn)。不是嗎標(biāo)準(zhǔn)庫廣泛地使用typedef來創(chuàng)建
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- rsync用法詳解
- 日語動詞用法詳解
- word通配符用法詳解
- 賓語從句用法詳解
- 初中英語語法詳解與訓(xùn)練——名詞用法詳解
- window.open()用法詳解
- 名詞性從句用法詳解
- 名詞性從句用法詳解
- 構(gòu)詞法用法詳解
- 英語賓語從句用法詳解
- 省略句用法詳解
- 初中英語介詞用法詳解與練習(xí)
- 名詞性從句用法詳解文檔
- sothat,suchthat用法詳解及習(xí)題
- linux系統(tǒng)調(diào)用fork用法詳解-
- 常用excel公式vlookup函數(shù)用法詳解
- 高中英語數(shù)詞用法詳解
- 高中英語狀語從句用法詳解文檔
- “to+one’s+情感名詞”結(jié)構(gòu)用法詳解
- 英語3000常用詞用法詳解詞典(中)
評論
0/150
提交評論