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

posts - 45,  comments - 232,  trackbacks - 0

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

?

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

常用鏈接

留言簿(15)

隨筆分類

隨筆檔案

相冊

我的其它領域Blog

搜索

  •  

積分與排名

  • 積分 - 207793
  • 排名 - 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>
            中文在线不卡| 日韩一级裸体免费视频| 久色婷婷小香蕉久久| 久久精品视频99| 亚洲视频一区二区在线观看| 99这里只有精品| 亚洲一区亚洲| 国产精品国色综合久久| 亚洲摸下面视频| 久久久久国产一区二区三区| 黄色成人在线网站| 麻豆国产精品一区二区三区 | 国产色爱av资源综合区| 亚洲色在线视频| 久久国产精品高清| 亚洲欧洲三级| 国产伦精品一区二区三区免费迷 | 一本色道久久综合一区| 欧美午夜片在线观看| 亚洲欧美日韩国产一区| 免费观看国产成人| 亚洲婷婷在线| 在线成人中文字幕| 欧美午夜激情视频| 欧美综合第一页| 亚洲欧洲在线一区| 亚洲欧美成人精品| 亚洲国产你懂的| 国产精品欧美日韩一区二区| 久久深夜福利| 亚洲一区三区在线观看| 欧美黑人多人双交| 久久riav二区三区| 一区二区三区成人| 国内精品一区二区| 国产精品五月天| 欧美日本一区| 噜噜爱69成人精品| 欧美在线中文字幕| 亚洲午夜久久久久久久久电影网| 亚洲欧洲一区二区天堂久久| 国产精品地址| 欧美黄色网络| 欧美成人精品在线观看| 性做久久久久久| 这里只有精品视频| 日韩午夜黄色| 美女黄色成人网| 久久亚洲春色中文字幕久久久| 国产亚洲美州欧州综合国| 国产伦精品一区二区三区| 欧美精品一区二区三区高清aⅴ| 久久久www成人免费无遮挡大片 | 欧美午夜在线| 欧美精品www| 免费成人小视频| 久久露脸国产精品| 久久人人看视频| 久久精品官网| 欧美一级播放| 欧美一二三视频| 亚洲一区二区三区视频| 亚洲激情六月丁香| 亚洲国产精品成人| 亚洲国产精品www| 亚洲国产导航| 亚洲乱码一区二区| 亚洲无毛电影| 午夜免费在线观看精品视频| 在线中文字幕一区| 国产精品99久久久久久人| 99精品国产在热久久| 日韩亚洲国产精品| 亚洲视频高清| 午夜精品电影| 久久久综合视频| 免费日韩av片| 欧美日韩国产综合新一区| 欧美日韩亚洲视频| 国产精品亚洲综合| 精品51国产黑色丝袜高跟鞋| 亚洲第一色中文字幕| 亚洲精品乱码久久久久久久久| 国产精品亚洲欧美| 亚洲国产精品一区二区第一页| 欧美日韩精品一区二区三区四区| 午夜视频在线观看一区二区三区 | 久久本道综合色狠狠五月| 欧美主播一区二区三区| 久久亚洲综合色| 亚洲人精品午夜在线观看| 一本色道久久综合亚洲精品高清 | 一本久道久久久| 亚洲在线黄色| 男人的天堂成人在线| 亚洲人被黑人高潮完整版| 亚洲视频香蕉人妖| 久久亚洲精品一区| 国产精品h在线观看| 影音先锋久久久| 欧美一区二区三区在| 久久夜色精品国产噜噜av| 亚洲黄色高清| 亚洲欧美日韩视频二区| 乱码第一页成人| 国产精品免费观看视频| 亚洲激情电影中文字幕| 欧美一区二区在线看| 亚洲国产毛片完整版| 亚洲欧美影音先锋| 欧美日韩在线第一页| 亚洲高清中文字幕| 久久精品视频免费| 在线亚洲一区观看| 欧美日韩成人激情| 亚洲国产精品激情在线观看| 性色一区二区三区| 亚洲精品视频免费| 久久嫩草精品久久久久| 国产精品视频yy9299一区| 一区二区三区成人| 亚洲国产欧美另类丝袜| 久久激情一区| 国产精品亚洲综合| 亚洲一区在线观看免费观看电影高清| 在线视频日韩| 亚洲大胆av| 久久精品亚洲乱码伦伦中文 | 欧美一区三区三区高中清蜜桃| 亚洲欧美视频在线观看| 狠狠色综合播放一区二区| 最新成人av在线| 欧美影院午夜播放| 亚洲欧美日韩久久精品| 国产精品午夜春色av| 亚洲免费成人av电影| 久久久久久夜| 久久国产直播| 在线精品观看| 免费在线观看精品| 久久久久久久久久久一区 | 夜夜嗨av一区二区三区网站四季av| 久久亚洲免费| 久久综合九色综合欧美就去吻 | 国内精品视频在线观看| 久久成人18免费观看| 欧美在线中文字幕| 国产日韩欧美一区| 榴莲视频成人在线观看| 久久久不卡网国产精品一区| 国产综合自拍| 欧美黑人国产人伦爽爽爽| 亚洲欧洲一二三| 欧美在线视频导航| 欧美日韩和欧美的一区二区| 最新国产成人av网站网址麻豆 | 久久久久久久久伊人| 亚洲第一黄色网| 亚洲国产清纯| 国产精品久久久久久久久久尿 | 欧美一级播放| 黄色免费成人| 亚洲国产精品嫩草影院| 欧美日产国产成人免费图片| 午夜性色一区二区三区免费视频| 欧美国产免费| 国产精品高清一区二区三区| 欧美一级二区| 久久综合一区二区三区| 亚洲免费精品| 午夜日韩在线观看| 黄色资源网久久资源365| 亚洲欧洲日夜超级视频| 国产精品一区=区| 欧美成人激情视频| 欧美三级日韩三级国产三级| 久久久亚洲高清| 欧美激情中文字幕在线| 久久gogo国模裸体人体| 免费亚洲网站| 欧美一二三视频| 欧美精品一区在线| 久久视频精品在线| 欧美三日本三级三级在线播放| 99国产精品视频免费观看一公开| 免费在线观看日韩欧美| 国产精品亚洲美女av网站| 亚洲国产成人av| 国产资源精品在线观看| 亚洲人成亚洲人成在线观看图片| 欧美激情精品久久久久久蜜臀| 欧美主播一区二区三区美女 久久精品人 | 一区二区三区高清不卡| 久久久久久久激情视频| 欧美尤物一区| 欧美亚洲成人精品| 亚洲另类在线视频| 亚洲精品精选| 久久伊人精品天天| 久久一区国产|