當前位置:編程學習大全網 - 編程語言 - 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)總保證壹個函數的定義點和它的所有使用點都能看到同壹個完整的函數原型說明。

--------------------------------------------------------------------------------

7)總註意檢查數組的界限和字符串(也以數組的方式存放)的結束。C語言內部根本不檢查數組下標表達式的取值是否在合法範圍內,也不檢查指向數組元素的指針是不是移出了數組的合法區域。寫程序的人需要自己保證對數組使用的合法性。越界訪問可能造成災難性的後果。

例:在寫處理數組的函數時壹般應該有壹個範圍參數;處理字符串時總檢查是否遇到空字符'\0'。

--------------------------------------------------------------------------------

8)絕不對空指針或者懸空的指針做間接訪問。這種訪問的後果不可預料,可能造成系統的破壞,也可能造成操作系統發現這個程序執行非法操作而強制將它終止。

--------------------------------------------------------------------------------

9)對於所有通過返回值報告運行情況或者出錯信息的庫函數,都應該檢查其執行是否正常完成。如果庫函數沒有完成操作(可能因為各種原因),隨後的操作有可能就是非法的。這種錯誤也可能在程序運行中隱藏很長時間,到很後來才暴露出來,檢查錯誤非常困難。

--------------------------------------------------------------------------------

10)在帶參數宏的定義字符串中,壹般應該給整個字符串和其中出現的每個參數都加括號。

C語言預處理程序是個簡單的文本替換程序,它根本不知道C語言的語法結構、優先級規則等。不寫括號有時會產生我們不希望的代換結果。

--------------------------------------------------------------------------------

11)所有外部變量名字、所有函數名字,應該只靠前6個字符就能夠互相區分。因為有些老的編譯程序只關註這些名字的前6個字符。如果不註意這個問題,就可能引起隱含的連接錯誤。

  • 上一篇:學好金融科技的前提條件有哪些?
  • 下一篇:樂泰uv膠水價格大全 uv膠水固化原理
  • copyright 2024編程學習大全網