一段代碼,在編譯、鏈接和運行的各個階段都可能會出現問題。編譯器只能檢查編譯和鏈接階段出現的問題,而可執行程序已經脫離了編譯器,運行階段出現問題編譯器是無能為力的。
如果我們編寫的代碼正確,運行時會提示沒有錯誤(Error)和警告(Warning),如下圖所示:
圖1:C-Free 5.0 的提示
圖2:VC 6.0 的提示
錯誤(Error)表示程序不正確,不能正常編譯、鏈接或運行,必須要糾正。
警告(Warning)表示可能會發生錯誤(實際上未發生)或者代碼不規范,但是程序能夠正常運行,有的警告可以忽略,有的要引起注意。
錯誤和警告可能發生在編譯、鏈接、運行的任何時候。
例如,
puts("C語言中文網")
最後忘記寫分號
;
,就會出現錯誤,如下圖所示:
圖3:C-Free 5.0 的錯誤提示
圖4:VC 6.0 的錯誤提示
可以看出,VC 6.0給出的錯誤信息更加豐富也更加科學,指出了具體的錯誤細節:
圖5:錯誤信息說明
翻譯:源文件 E:\cDemo\hello.c 第5行發生了語法錯誤,錯誤代碼是 C2143,原因是 'return' 前面丟失了 ';'。
我敢保證,你寫的代碼肯定會發生錯誤,一定要有分析錯誤的能力,這是一個合格的程序員必備的技能。