C語言程序常見錯誤與調試方法_第1頁
C語言程序常見錯誤與調試方法_第2頁
C語言程序常見錯誤與調試方法_第3頁
C語言程序常見錯誤與調試方法_第4頁
C語言程序常見錯誤與調試方法_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、C C語言程序常見錯誤與調試方法語言程序常見錯誤與調試方法 C Programming(一)(一)C C語言程序常見錯誤語言程序常見錯誤 程序設計很少能夠沒有錯誤的一次完成,在編程的過程中由于種種原因,總會出現這樣或那樣的錯誤,這些程序的錯誤也就是常說的“Bug”,而檢測并修正這些錯誤就是“Debug”(調試)。 程序錯誤可分為三類:語法錯誤、運行錯誤和邏輯錯誤。C Programming1 1、語法錯誤語法錯誤 語法錯誤是指那些由于編程中輸入不符合語法規則產生的錯誤。 例如:表達式不完整、缺少必要的標點符號、關鍵字輸入錯誤、數據類型不匹配、循環語句或選擇語句的關鍵字不配對等。 通常,編譯器對

2、程序進行編譯的過程中,會把檢測到的語法錯誤以提示的方式列舉出來。C Programming2 2、運行錯誤運行錯誤 運行錯誤是指程序在運行過程中出現錯誤。 例如:進行除法運算時除數為零、數組下標越界、文件無法打開等。 這類錯誤只出現在運行過程中,在程序編譯時一般是無法發現的。C Programming3 3、邏輯錯誤邏輯錯誤 邏輯錯誤是指程序運行后,沒有得到預期的結果。這類錯誤從語法上來說是有效的,但是程序邏輯上存在缺陷。 例如:使用了不正確的變量類型、循環條件不正確、程序設計算法考慮不周等。 一般情況下,編譯器在編譯程序時,不能檢查到程序的邏輯錯誤,也不會產生邏輯錯誤提示信息。C Progr

3、amming(二)語法錯誤的分類(二)語法錯誤的分類 語法錯誤的調試,可以由集成開發環境提供的調試功能來完成,在程序進行編譯時,編譯器會對程序中的語法錯誤進行診斷。 編譯診斷的語法錯誤分為3類:致命錯誤、錯誤和警告。C Programming1 1、致命錯誤致命錯誤 “致命錯誤”大多數是編譯程序內部發生錯誤。 發生這類錯誤時,編譯被迫終止,只能重新啟動編譯程序。幸運的是,這類錯誤很少發生,但是為了安全,編譯前最好先保存程序。C Programming2 2、錯誤錯誤 “錯誤”通常是在編譯時,語法不當所引起的,例如括號不匹配、變量為聲明等。 產生這類錯誤時,編譯程序會出現報錯提示,根據提示對源程

4、序進行修改即可。這類錯誤是出現最頻繁的。C Programming3 3、警告警告 “警告”是指被編譯程序懷疑有錯,但不確定,有時可強行編譯通過。例如:主函數沒有返回值時沒有加void聲明、double型數據被轉換為float型數據等。 這些警告中,有些會導致錯誤,有些則可以編譯通過。C Programming(三)(三)C C語言程序調試方法語言程序調試方法1 1、先進行人工檢查,即、先進行人工檢查,即靜態檢查靜態檢查。 在寫好一個程序以后,不要匆匆忙忙上機,而應對程序進行人工檢查。這一步十分重要,它能發現由于疏忽而造成的多數錯誤。這一步往往容易被人忽視,總希望把一切都推給計算機去做,但這樣

5、會多占用機器時間,作為一個程序設計人員應當養成嚴謹的作風,每一步都要嚴格把關,不把問題留給后面的工序。C Programming(三)(三)C C語言程序調試方法語言程序調試方法 為了更有效地進行人工檢查,所編的程序應力求做到以下幾點:1)應當采用結構化程序方法編程,以增加可讀性;2)盡可能多加注釋,以幫助理解每段程序的作用;3)在編寫復雜的程序時不要將全部語句都寫在main函數中,而要多利用函數,用一個函數來實現一個單獨的功能。這樣便于分別檢查和處理。C Programming(三)(三)C C語言程序調試方法語言程序調試方法2 2、在人工檢查無誤后,再上機調試。即、在人工檢查無誤后,再上機

6、調試。即動態檢查動態檢查。 在編譯時會給出語法錯誤的信息,調試時可以根據提示信息具體找出程序中出錯之處并改正。應當注意的是有時提示出錯的地方并不是真正出錯的位置,如果在提示出錯的行找不到錯誤的話應當到上一行再找。有時提示出錯的類型并非絕對準確,由于出錯的情況繁多且各種錯誤互有關聯,因此要善于分析,找出真正的錯誤,而不要只從字面意義上找出錯信息,鉆牛角尖。C Programming(三)(三)C C語言程序調試方法語言程序調試方法3 3、對運行結果作分析,看它是否符合要求。、對運行結果作分析,看它是否符合要求。 有的初學者看到運行結果就認為沒問題了,不作認真分析,這是危險的。 有時,數據比較復雜

7、,難以立即判斷結果是否正確。可以事先考慮好一批“試驗數據”,輸入這些數據可以很容易判斷結果正確與否。 事實上,當程序復雜時很難把所有的可能情況全部都試到,選擇典型的臨界數據作試驗即可。C Programming(三)(三)C C語言程序調試方法語言程序調試方法4 4、運行結果不對,大多屬于邏輯錯誤。、運行結果不對,大多屬于邏輯錯誤。 這類錯誤往往需要仔細檢查和分析才能發現。可以采用以下辦法:1)將程序與流程圖仔細對照,如果流程圖是正確的,程序寫錯了,是很容易發現的。例如,復合語句忘記寫花括弧,只要一對照流程圖就能很快發現。C Programming(三)(三)C C語言程序調試方法語言程序調試方法2)如果實在找不到錯誤,可以采用“分段檢查”的方法。逐段往下檢查,直到找到在某一段中數據不對為止。這時就已經把錯誤局限在這一段中了。不斷減小“查錯區”,就能發現錯誤所在。3)如果在程序中沒有發現問題,就要檢查流程圖有無錯誤,即算法有無問題。有則改正之,接著修改程序。C Programming(三)(三)C C語言程序調試方法語言程序調試方法 總之,程序調試是一項深入細致的工作,需要下功夫,動腦子,善于積累經驗。在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論