版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C C語言程序常見錯誤與調(diào)試方法語言程序常見錯誤與調(diào)試方法 C Programming(一)(一)C C語言程序常見錯誤語言程序常見錯誤 程序設(shè)計很少能夠沒有錯誤的一次完成,在編程的過程中由于種種原因,總會出現(xiàn)這樣或那樣的錯誤,這些程序的錯誤也就是常說的“Bug”,而檢測并修正這些錯誤就是“Debug”(調(diào)試)。 程序錯誤可分為三類:語法錯誤、運行錯誤和邏輯錯誤。C Programming1 1、語法錯誤語法錯誤 語法錯誤是指那些由于編程中輸入不符合語法規(guī)則產(chǎn)生的錯誤。 例如:表達式不完整、缺少必要的標點符號、關(guān)鍵字輸入錯誤、數(shù)據(jù)類型不匹配、循環(huán)語句或選擇語句的關(guān)鍵字不配對等。 通常,編譯器對
2、程序進行編譯的過程中,會把檢測到的語法錯誤以提示的方式列舉出來。C Programming2 2、運行錯誤運行錯誤 運行錯誤是指程序在運行過程中出現(xiàn)錯誤。 例如:進行除法運算時除數(shù)為零、數(shù)組下標越界、文件無法打開等。 這類錯誤只出現(xiàn)在運行過程中,在程序編譯時一般是無法發(fā)現(xiàn)的。C Programming3 3、邏輯錯誤邏輯錯誤 邏輯錯誤是指程序運行后,沒有得到預(yù)期的結(jié)果。這類錯誤從語法上來說是有效的,但是程序邏輯上存在缺陷。 例如:使用了不正確的變量類型、循環(huán)條件不正確、程序設(shè)計算法考慮不周等。 一般情況下,編譯器在編譯程序時,不能檢查到程序的邏輯錯誤,也不會產(chǎn)生邏輯錯誤提示信息。C Progr
3、amming(二)語法錯誤的分類(二)語法錯誤的分類 語法錯誤的調(diào)試,可以由集成開發(fā)環(huán)境提供的調(diào)試功能來完成,在程序進行編譯時,編譯器會對程序中的語法錯誤進行診斷。 編譯診斷的語法錯誤分為3類:致命錯誤、錯誤和警告。C Programming1 1、致命錯誤致命錯誤 “致命錯誤”大多數(shù)是編譯程序內(nèi)部發(fā)生錯誤。 發(fā)生這類錯誤時,編譯被迫終止,只能重新啟動編譯程序。幸運的是,這類錯誤很少發(fā)生,但是為了安全,編譯前最好先保存程序。C Programming2 2、錯誤錯誤 “錯誤”通常是在編譯時,語法不當所引起的,例如括號不匹配、變量為聲明等。 產(chǎn)生這類錯誤時,編譯程序會出現(xiàn)報錯提示,根據(jù)提示對源程
4、序進行修改即可。這類錯誤是出現(xiàn)最頻繁的。C Programming3 3、警告警告 “警告”是指被編譯程序懷疑有錯,但不確定,有時可強行編譯通過。例如:主函數(shù)沒有返回值時沒有加void聲明、double型數(shù)據(jù)被轉(zhuǎn)換為float型數(shù)據(jù)等。 這些警告中,有些會導(dǎo)致錯誤,有些則可以編譯通過。C Programming(三)(三)C C語言程序調(diào)試方法語言程序調(diào)試方法1 1、先進行人工檢查,即、先進行人工檢查,即靜態(tài)檢查靜態(tài)檢查。 在寫好一個程序以后,不要匆匆忙忙上機,而應(yīng)對程序進行人工檢查。這一步十分重要,它能發(fā)現(xiàn)由于疏忽而造成的多數(shù)錯誤。這一步往往容易被人忽視,總希望把一切都推給計算機去做,但這樣
5、會多占用機器時間,作為一個程序設(shè)計人員應(yīng)當養(yǎng)成嚴謹?shù)淖黠L(fēng),每一步都要嚴格把關(guān),不把問題留給后面的工序。C Programming(三)(三)C C語言程序調(diào)試方法語言程序調(diào)試方法 為了更有效地進行人工檢查,所編的程序應(yīng)力求做到以下幾點:1)應(yīng)當采用結(jié)構(gòu)化程序方法編程,以增加可讀性;2)盡可能多加注釋,以幫助理解每段程序的作用;3)在編寫復(fù)雜的程序時不要將全部語句都寫在main函數(shù)中,而要多利用函數(shù),用一個函數(shù)來實現(xiàn)一個單獨的功能。這樣便于分別檢查和處理。C Programming(三)(三)C C語言程序調(diào)試方法語言程序調(diào)試方法2 2、在人工檢查無誤后,再上機調(diào)試。即、在人工檢查無誤后,再上機
6、調(diào)試。即動態(tài)檢查動態(tài)檢查。 在編譯時會給出語法錯誤的信息,調(diào)試時可以根據(jù)提示信息具體找出程序中出錯之處并改正。應(yīng)當注意的是有時提示出錯的地方并不是真正出錯的位置,如果在提示出錯的行找不到錯誤的話應(yīng)當?shù)缴弦恍性僬?。有時提示出錯的類型并非絕對準確,由于出錯的情況繁多且各種錯誤互有關(guān)聯(lián),因此要善于分析,找出真正的錯誤,而不要只從字面意義上找出錯信息,鉆牛角尖。C Programming(三)(三)C C語言程序調(diào)試方法語言程序調(diào)試方法3 3、對運行結(jié)果作分析,看它是否符合要求。、對運行結(jié)果作分析,看它是否符合要求。 有的初學(xué)者看到運行結(jié)果就認為沒問題了,不作認真分析,這是危險的。 有時,數(shù)據(jù)比較復(fù)雜
7、,難以立即判斷結(jié)果是否正確??梢允孪瓤紤]好一批“試驗數(shù)據(jù)”,輸入這些數(shù)據(jù)可以很容易判斷結(jié)果正確與否。 事實上,當程序復(fù)雜時很難把所有的可能情況全部都試到,選擇典型的臨界數(shù)據(jù)作試驗即可。C Programming(三)(三)C C語言程序調(diào)試方法語言程序調(diào)試方法4 4、運行結(jié)果不對,大多屬于邏輯錯誤。、運行結(jié)果不對,大多屬于邏輯錯誤。 這類錯誤往往需要仔細檢查和分析才能發(fā)現(xiàn)??梢圆捎靡韵罗k法:1)將程序與流程圖仔細對照,如果流程圖是正確的,程序?qū)戝e了,是很容易發(fā)現(xiàn)的。例如,復(fù)合語句忘記寫花括弧,只要一對照流程圖就能很快發(fā)現(xiàn)。C Programming(三)(三)C C語言程序調(diào)試方法語言程序調(diào)試方法2)如果實在找不到錯誤,可以采用“分段檢查”的方法。逐段往下檢查,直到找到在某一段中數(shù)據(jù)不對為止。這時就已經(jīng)把錯誤局限在這一段中了。不斷減小“查錯區(qū)”,就能發(fā)現(xiàn)錯誤所在。3)如果在程序中沒有發(fā)現(xiàn)問題,就要檢查流程圖有無錯誤,即算法有無問題。有則改正之,接著修改程序。C Programming(三)(三)C C語言程序調(diào)試方法語言程序調(diào)試方法 總之,程序調(diào)試是一項深入細致的工作,需要下功夫,動腦子,善于積累經(jīng)驗。在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人房產(chǎn)抵押借款規(guī)范合同版B版
- 雙十二數(shù)碼之路
- 農(nóng)業(yè)電商春節(jié)之道
- 2024年跨境電商物流解決方案合作合同
- 2024年版企業(yè)債務(wù)償還抵扣協(xié)議版B版
- 大巴用車合同(2篇)
- 2025年度餐廚廢棄物無害化處理與綜合利用合同3篇
- 2024年高壓開關(guān)設(shè)備安裝協(xié)議
- 專業(yè)化眼科義齒2024年加工服務(wù)協(xié)議模板版B版
- 2025年父母房產(chǎn)處置與子女就業(yè)支持協(xié)議3篇
- 醫(yī)院院長年終工作總結(jié)報告精編ppt
- 綠化養(yǎng)護重點難點分析及解決措施
- “三排查三清零”回頭看問題整改臺賬
- 造價咨詢結(jié)算審核服務(wù)方案
- 中國人民財產(chǎn)保險股份有限公司機動車綜合商業(yè)保險條款
- T∕CGCC 7-2017 焙烤食品用糖漿
- 八年級物理上冊計算題精選(50道)
- 貨代操作流程及規(guī)范
- 礦井反風(fēng)演習(xí)方案
- 2022年脛骨平臺三柱理論
- 工程進度款支付申請表
評論
0/150
提交評論