




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言輔導:ANSI / ISO標準一個C程序員會期望一個C程序無論是在哪里開發的,在另一個編譯程序中都能通過編譯。實際上不能完全做到這一點,由于很多頭文件和函數庫都是針對某些特定的編譯程序或平臺的。有些很少!語言擴大性能,例如基于Intel的編譯程序所使用的near和far關鍵字以及存放器偽變量,也只不過是某種平臺的開發商們所認可的一種標準。假如你認為靠一種標準走遍天下是理所固然的,就象左腳踩加速器,右腳踩剎車一樣,那么你的視野未免有些狹窄。有兩種不同的BASIC標準,但都沒有得到廣泛的支持;世界上最流行的Pascal編譯程序并不符合正式的標準;現在正在進展的C+標準,由于變化太快,也沒有得
2、到廣泛的支持;有些實現遵循一種嚴格的Ada標準,但Ada標準也沒能大規模地占據世界市場。從技術上講有兩種C語言標準,一種來自ANSIAmerican NationalStandard Institute,美國國家標準協會X3J11委員會,另一種來自ISOInternational Standard Organization,國際標準協會98991990。由于ISO標準中的某些改良優于ANSI標準,而ANSI標準也承受了這個國際版本,因此“ANSI / ISO標準是一種正確的說法。那么,這種標準對你有什么幫忙呢?你可以買到一份該標準的副本,即 Herbert Schildt 所著的The Ann
3、otated ANSI C StandardOsborneMcGraw-Hill出版,ISBN O-07-881952-O 書,該書對語言和庫都作了介紹,并帶有解釋。這本書比大多數正式標準要廉價多了,后者由ANSI和ISO出售,以解決建立標準所需的局部費用。并不是每一個C程序員都需要這樣一本書,但它是最權威的。最重要的一點是,ANSI / ISO標準是對“什么是c?這一問題的權威解答。假如編譯程序開發商所做的某些實現不符合這一標準,你可以把它作為錯誤指出來,這不會引起爭辯。ANSI / ISO標準也不是包羅萬象的。詳細地說,它沒有涉及c程序可能會做的很多好玩的事情,例如圖形或多任務。很多兼容性
4、不強的標準包含了這些內容,其中的一些將來可能會成為權威的標準,因此你不必完全拘泥于ANSI / ISO標準。順便提一句,除編程語言之外,還有很多東西也有ANSI標準,其中的一種就是ANSI為全屏幕文本操作的退出序列集合而寫的標準,在第17章中所介紹的MSDOS的“ANSI驅動程序指的就是這種標準好玩的是,MS-DOS的ANSI. SYS只實現了 ANSI標準序列中的一小局部。16. 1運算符的優先級總能起作用嗎?有關運算符優先級的規章略微有點簡單。在大多數狀況下,這些規章的確是你所需要的,然而,有人也指出其中的一些規章原來是可以設計得更好的。讓我們快速地回憶一些有關內容:“運算符優先級是這樣一
5、些規章的集合一一這些規章規定了 “運算符例如+,-,等等的優先性,即哪一種運算符先參與運算。在數學中,表達式“2X3+4X5和“2X3 + 4X5是等價的,由于乘法運算在加法運算之前進展,也就是說乘法的優先級比加法高。在c中,有16級以上的運算符優先級。盡管這么多的規章有時使c程序不易閱讀,但也使C程序寫起來簡單多了。雖然這不是的一種折衷方法,但這就是C所采納的方法。表16. 1總結了運算符的優先級。表16. 1運算符優先級總結從高到低優先級運算符1xy下標x(y)(函數調用xy訪問成員x-y(訪問成員指針x+(后綴自增x(后綴自減-2+x( 自增)x(自減&x(取地址*x(指針引用+x(同x
6、,和數學中一樣-x(數學求負!x(規律非x按位求反sizeof x和sizeofx_t字節數大小3x_ty強制類型轉換4x*y(乘法x/ y除法x%y求余5x+y(加法x-y(減法6xy(按位右移7xy,x=y關系比擬8x=y,x!=y相等比擬9x&y(按位與10 x(按位異或.11x y(按位或x&y 規律與x|y 規律或x?y : z 條件x二y, x*=y, x / =y, x+=y, x-=y, =, &=, = | =賦值,右結合性16 x , y逗號優先級的是后綴表達式,即運算符跟在一個表達式后面;其次是前綴或單目表達式,即運算符位于一個表達式的前面;再次是強制類型轉換表達式。留意
7、:關于運算符優先級,最重要的是知道*p+和*(p+)是等價的。也就是說,在*p+中,+運算符作用在指針上,而不是作用在指針所指向的對象上。象*p+=*q+;這樣的代碼在C中是隨處可見的,其中的優先級和“(*(p+) = (*(q+) 中的是一樣的。這個表達式的含義是“q+1,但仍用q原來的值找到q所指向的對象;p加1,但仍用p原來的值;把q所指向的對象賦給p所指向的對象,整個表達式的值就是原來q所指向的對象。在C中你會常常看到這樣的代碼,并且你會有很多時機去寫這樣的代碼。對于其它運算符,假如你記不住其優先級,可以查閱有關資料,但是,一個好的c程序員應當連想都不用想就能明白*p+的含義。最初的C編譯程序是為這樣一種計算機編寫的一一它的某些指令對象*p+和*?+=*4+這樣的代碼的處理效率高得令人難以置信,因此,許多C代碼就寫成這種形式了。進一步地
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國淀粉工業項目創業計劃書
- 江西飼料項目創業計劃書
- 樂高面試題及答案詳解
- 一年級語文部編第一單元教案
- 2025大連市房屋出租代理合同(官方范本)范文
- 茶葉電商企業茶葉售后服務合同范本
- 2025合同模板合作組建合資公司合同示例
- 2025《委托管理合同》
- 2025合同示范文本匯編(下)
- 線練學校高三英語第一學期1月月考
- 腕管綜合征診治循證臨床實踐指南(2024)解讀
- 融資租賃 測試題及答案
- 千川合同協議
- 貸款行業客戶經理經驗分享
- 人工智能背景下認知對抗的動態機制與策略研究
- 婚前拆遷婚內協議書
- 常州文化測試試題及答案
- 會考地理綜合題答題模板+簡答題歸納-2025年會考地理知識點梳理
- 國開《離散數學》形考任務1-3試題及答案
- 預防VTE質控匯報演講
- T-FJTEA 001-2024 白云石粉改良酸化茶園土壤技術規范
評論
0/150
提交評論