- C語言程序設計
- 徐鳳生 黃超 謝玉華編著
- 942字
- 2019-10-12 15:48:43
1.6.1 靜態調試
1.對程序語法規則進行檢查
(1)語句正確性檢查。保證程序中每條語句的正確性是編寫程序時的基本要求。由于程序中包含大量的語句,書寫過程中由于疏忽或筆誤,寫錯語句在所難免。對程序語句的檢查應注意以下幾點:
①檢查每條語句的書寫是否有字符遺漏,包括必要的空格符。
②檢查形體相近的字符是否書寫正確,例如o和0,書寫時要有明顯的區別。
③檢查函數調用時形參和實參的類型、個數是否相同。
(2)語法正確性檢查。每種計算機語言都有自己的語法規則,書寫時必須遵守一定的語法規則,否則編譯時程序將給出錯誤信息。
①語句的配對檢查。許多語句都是配對出現的,不能只寫半條語句。另外,語句有多重括號時,每重括號也都應成對出現,不能缺左少右。
②注意檢查語句順序。有些語句不僅句法本身要正確,而且語句在程序中的位置也必須正確。例如,變量定義要放在使用該變量的所有可執行語句之前。
2.檢查程序的邏輯錯誤
(1)檢查程序中各變量的初值和初值的位置是否正確。例如,經常遇到的“累加”“累乘”,其初值和位置都非常重要。若賦的初值或賦初值的位置錯了,就得不到預想的結果。
(2)檢查程序中分支結構是否正確。程序中的分支結構都是根據給定的條件來決定執行不同的路徑的,因此在設置各條路徑的條件時一定要謹慎,在設置“大于”“小于”這些條件時,一定要仔細考慮是否應包含“等于”這個條件,更不能把條件寫反。尤其要注意的是,實型數據在運算過程中會產生誤差,如果用“等于”或“不等于”對實數的運算結果進行比較,則會因為誤差而產生錯誤判斷,路徑選擇也就出現錯誤。因此,在遇到要判斷實數a和實數b相等與否作為條件來選擇路徑時,應該把條件寫成if(fabs(a-b)<=1e-6),而不應該寫成if(a==b)。要特別注意條件語句嵌套時,if和else的配對關系。
(3)檢查程序中循環結構的循環次數和循環嵌套的正確性。C語言中可用for循環、while循環、do-while循環。在給定循環條件時,不僅要考慮循環變量的初始條件,還要考慮循環變量的變化規律、循環變量變化的時間,任何一條變化都會引起循環次數的變化。
(4)檢查表達式合理與否。程序中不僅要保證表達式的正確性,而且還要保證表達式的合理性,尤其要注意表達式運算中的溢出問題。例如,運算數值可能超出整數范圍就不應該采用整型運算,否則必然導致運算結果的錯誤。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Mastering JavaScript Functional Programming
- Mobile Application Development:JavaScript Frameworks
- Android Jetpack開發:原理解析與應用實戰
- What's New in TensorFlow 2.0
- Visual FoxPro程序設計教程(第3版)
- Python自動化運維快速入門(第2版)
- VMware vSphere 6.7虛擬化架構實戰指南
- 區塊鏈:以太坊DApp開發實戰
- Learn React with TypeScript 3
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)
- 工業機器人離線編程
- Java EE 8 and Angular
- Using Yocto Project with BeagleBone Black
- Learning Redux