青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 45,  comments - 232,  trackbacks - 0

要寫好C語言程序,最重要的當然是把要解決的問題分析清楚,設計好解決問題的方案和通過計算實現求解的過程,對問題的求解過程進行科學的結構化的分解。在此基礎上進一步考慮如何寫程序的時候,下面的建議可能有所幫助。
這些建議中有些是一般性的,不僅僅對C語言程序設計有效;也有些是特別針對C語言程序設計的。這個表還會進一步修改和擴充,歡迎提出意見。
________________________________________
1)應該特別注意程序的書寫格式,讓它的形式反映出其內在的意義結構。
程序是最復雜的東西(雖然你開始寫的程序很簡單,但它們會逐漸變得復雜起來),是需要用智力去把握的智力產品。良好的格式能使程序結構一目了然,幫助你和別人理解它,幫助你的思維,也幫助你發現程序中不正常的地方,使程序中的錯誤更容易被發現。
人們常用的格式形式是:邏輯上屬于同一個層次的互相對齊;邏輯上屬于內部層次的推到下一個對齊位置。請參考本課程的教科書或《C程序設計語言》(The C Programming Language,Brian W. Kernighan & Dennis M. Rirchie,清華大學出版社,大學計算機教育叢書(影印版,英文),1996。)
利用集成開發環境(IDE)或者其他程序編輯器的功能,可以很方便地維護好程序的良好格式。請注意下面這幾個鍵,在寫程序中應該經常用到它們:Enter鍵(換一行),Tab鍵(將輸入光標移到下一個對齊位置——進入新的一個層次),Backspace鍵(回到前一個對齊位置——退到外面的一個層次)。
________________________________________
2)用最規范的、最清晰的、最容易理解的方式寫程序。注意人們在用C語言寫程序的習慣寫法,例如教科書中解決類似問題時所使用的寫法,《C程序設計語言》一書中有許多極好的程序實例。在這里有一個關于程序模式的相關網頁,里面也列出了一些常用的模式。
C語言是一個非常靈活的語言,你可能在這里用許多非常隱晦的方式寫程序,但這樣寫出的程序只能是作為一種玩意兒,就像謎語或者智力游戲。這些東西可以用于消磨時間,但通常與實際無緣。在我們的C語言討論組里提到過這種東西。
________________________________________
3)在編程中,應仔細研究編譯程序給出的錯誤信息和警告信息,弄清楚每條信息的確切根源并予以解決。特別是,不要忽略那些警告信息,許多警告信息源自隱含的嚴重錯誤。我們有許多辦法去欺騙編譯程序,使它不能發現我們程序中的錯誤,但這樣做最終受到傷害的只能是自己。
________________________________________
4)隨時注意表達式計算過程和類型。注意運算符的優先級和結合順序,不同類型的運算對象將怎樣轉換,運算的結果是什么類型的,等等。在必要的時候加上括號或顯式的類型強制轉換。
C語言的運算符很多,優先級定義也不盡合理,很難完全記清楚,因此要特別注意。需要時查一查(不要怕麻煩,相關網頁有運算符表),或者直接按照自己的需要加上幾個括號。
________________________________________
5)絕不去寫依賴于運算對象求值順序的表達式。對于普通二元運算符的運算對象,函數調用的各個實際參數,C語言都沒有規定特定求值順序。因此,我們不應該寫那種依賴于特定求值順序的表達式,因為不能保證它一定得到什么結果。例如下面的表達式和函數調用都是不合適的,很可能產生你預料不到的結果:
scanf("%d %d", i++, a[i]);
m = n * n++;
________________________________________
6)總保證一個函數的定義點和它的所有使用點都能看到同一個完整的函數原型說明。參看《從問題到程序》第103-107頁。
________________________________________
7)總注意檢查數組的界限和字符串(也以數組的方式存放)的結束。C語言內部根本不檢查數組下標表達式的取值是否在合法范圍內,也不檢查指向數組元素的指針是不是移出了數組的合法區域。寫程序的人需要自己保證對數組使用的合法性。越界訪問可能造成災難性的后果。
例:在寫處理數組的函數時一般應該有一個范圍參數;處理字符串時總檢查是否遇到空字符'\0'。
________________________________________
8)絕不對空指針或者懸空的指針做間接訪問。這種訪問的后果不可預料,可能造成系統的破壞,也可能造成操作系統發現這個程序執行非法操作而強制將它終止。
________________________________________
9)對于所有通過返回值報告運行情況或者出錯信息的庫函數,都應該檢查其執行是否正常完成。如果庫函數沒有完成操作(可能因為各種原因),隨后的操作有可能就是非法的。這種錯誤也可能在程序運行中隱藏很長時間,到很后來才暴露出來,檢查錯誤非常困難。
________________________________________
10)在帶參數宏的定義字符串中,一般應該給整個字符串和其中出現的每個參數都加括號。
C語言預處理程序是個簡單的文本替換程序,它根本不知道C語言的語法結構、優先級規則等。不寫括號有時會產生我們不希望的代換結果。
________________________________________
11)所有外部變量名字、所有函數名字,應該只靠前6個字符就能夠互相區分。因為有些老的編譯程序只關注這些名字的前6個字符。如果不注意這個問題,就可能引起隱含的連接錯誤。
________________________________________
有關如何寫好程序,如何將自己發展成為一個高水平的計算機工作者(真正的高級程序工作者,而不是那種拿證書的所謂“高級程序員”)還需要進一步學習和實踐。如果希望向這個方向努力,我翻譯的一本書可能對你有所幫助:
《程序設計實踐》,(The Practice Of Programming, Brian W. Kernighan & Bob Pike 1999)。機械工業出版社2000。這本書討論了程序設計的許多重要的實踐性問題,值得每個學過一個程序設計語言,有些程序設計經驗,熱愛或夢想在計算機領域工作的人閱讀參考。在這里可以看到原書的前言和章節表。還有我為該書中文版寫的譯者序言。

?

posted on 2007-01-29 12:39 天下無雙 閱讀(825) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

常用鏈接

留言簿(15)

隨筆分類

隨筆檔案

相冊

我的其它領域Blog

搜索

  •  

積分與排名

  • 積分 - 207690
  • 排名 - 130

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久999| 国产精品成人一区二区| 欧美日韩不卡| 国产精品久久久久久一区二区三区| 久久久久久久综合色一本| 欧美日本亚洲视频| 久久av最新网址| 久久久精品动漫| 欧美成人第一页| 国产精品久久久久久久app| 欧美午夜性色大片在线观看| 亚洲精品美女久久7777777| 一区二区冒白浆视频| 日韩一级精品| 性色一区二区三区| 欧美偷拍另类| 亚洲黄色在线视频| 久久精品系列| 一区二区精品国产| 欧美激情bt| 亚洲欧美不卡| 国产麻豆日韩欧美久久| 中日韩高清电影网| 亚洲精品国产欧美| 久久精品国产亚洲aⅴ| 性亚洲最疯狂xxxx高清| 国内精品一区二区| 久久精品青青大伊人av| 99精品国产热久久91蜜凸| 欧美激情网友自拍| 日韩视频中午一区| 日韩网站在线观看| 欧美色大人视频| 亚洲性视频网址| 亚洲第一主播视频| 久久国产精品亚洲va麻豆| 国产日韩一级二级三级| 午夜精品久久久久久久白皮肤| 亚洲精品乱码久久久久久久久| 欧美日韩精品系列| 久久久久久久久久久久久9999| 国产精品一区二区在线| 欧美一区二区| 免费精品视频| 久久久久免费观看| 亚洲免费成人av电影| 日韩一级网站| 国产精品视频| 亚洲精品国产欧美| 日韩系列欧美系列| 国产精品日本欧美一区二区三区| 欧美一区永久视频免费观看| 亚洲精品综合精品自拍| 欧美视频在线播放| 欧美一区二区视频观看视频| 亚洲婷婷在线| 亚洲第一黄色| 日韩视频免费观看| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 一区二区三区日韩精品| 欧美先锋影音| 性色一区二区| 午夜国产精品视频免费体验区| 国产精品美女一区二区| 麻豆成人91精品二区三区| 麻豆国产精品va在线观看不卡| 国产日产精品一区二区三区四区的观看方式 | 久久一区二区三区超碰国产精品| 亚洲电影自拍| 亚洲综合日本| 亚洲精品久久久蜜桃 | 美女免费视频一区| 香蕉乱码成人久久天堂爱免费| 久久天天躁狠狠躁夜夜av| 欧美视频一区二区三区在线观看| 99国产一区| 午夜精品久久久久99热蜜桃导演| 亚洲高清在线播放| 午夜精品理论片| 亚洲精选久久| 久久爱另类一区二区小说| 欧美小视频在线| 欧美福利一区| 国产一区二区欧美日韩| 亚洲激情网站| 新67194成人永久网站| 亚洲精品日韩一| 新狼窝色av性久久久久久| 激情六月综合| 午夜日韩在线观看| 亚洲一区二区免费看| 欧美影院在线播放| 亚洲私人黄色宅男| 国产女主播一区| 久久精品99国产精品酒店日本| 快播亚洲色图| 99热在线精品观看| 国产精品日韩欧美| 久久精品国产亚洲a| 亚洲国产精品激情在线观看| 亚洲精品久久久久| 中国成人亚色综合网站| 国产午夜精品视频免费不卡69堂| 久久精品视频在线播放| 91久久极品少妇xxxxⅹ软件| 午夜久久黄色| 亚洲区国产区| 国产伦理精品不卡| 欧美激情一区二区三区| 亚洲欧美日韩另类| 亚洲欧洲视频在线| 久久综合国产精品| 亚洲永久字幕| 亚洲欧洲精品一区二区三区| 欧美性大战久久久久| 欧美专区在线播放| 在线视频精品一| 亚洲电影免费观看高清完整版| 亚洲欧美激情视频在线观看一区二区三区| 欧美日韩日日骚| 久久爱www久久做| 99精品热视频只有精品10| 久久综合影视| 欧美一区二区三区久久精品| 亚洲精品免费电影| 国产欧美日韩一区二区三区在线 | 夜夜爽夜夜爽精品视频| 国内一区二区三区在线视频| 美日韩精品视频| 欧美影院成人| 亚洲欧洲av一区二区| 亚洲美女黄色片| 亚洲欧洲午夜| 亚洲第一网站| 亚洲国产精品成人综合色在线婷婷| 久久精品30| 午夜欧美视频| 香蕉国产精品偷在线观看不卡| 在线亚洲精品| 在线亚洲免费| 99视频超级精品| 99在线精品视频在线观看| 亚洲精品亚洲人成人网| 亚洲精品看片| 夜久久久久久| 在线视频一区观看| 亚洲免费观看高清在线观看 | 午夜亚洲激情| 久久夜色精品| 亚洲欧美国产高清| 午夜精品一区二区三区在线| 亚洲在线日韩| 欧美一区在线看| 久久婷婷成人综合色| 久久综合中文| 亚洲激情国产精品| 亚洲国产高清视频| 99国产精品久久| 亚洲视频成人| 午夜精品在线| 久久天堂国产精品| 欧美日本精品一区二区三区| 欧美日韩亚洲系列| 快she精品国产999| 欧美激情第1页| 欧美亚州在线观看| 国产精品午夜电影| 国产伊人精品| 亚洲老司机av| 午夜视频一区二区| 麻豆精品网站| 亚洲精品美女久久久久| 在线视频欧美日韩| 国产精品视频一区二区三区| 欧美精品日韩一区| 国产精品久久久久影院色老大 | 欧美专区亚洲专区| 久久亚洲精选| 欧美精品九九| 国产日产欧美精品| 91久久国产综合久久91精品网站| 亚洲精品1区2区| 亚洲视频自拍偷拍| 欧美中文字幕不卡| 欧美国产日本| 亚洲欧美日韩精品在线| 亚洲美女在线观看| 欧美chengren| 国产日韩视频| 日韩视频在线免费| 久久天堂成人| 99在线|亚洲一区二区| 亚洲欧美日韩中文视频| 久热国产精品| 国产视频欧美视频| 亚洲影视在线| 亚洲精品国产精品国自产观看浪潮| 午夜精品免费视频| 欧美了一区在线观看| 伊人狠狠色j香婷婷综合|