C語言程式的錯誤和警告

2022-02-19 05:02:58 字數 1455 閱讀 5323

一段c語言**,在編譯、鏈結和執行的各個階段都可能會出現問題。編譯器只能檢查編譯和鏈結階段出現的問題,而可執行程式已經脫離了編譯器,執行階段出現問題編譯器是無能為力的。

如果我們編寫的**正確,執行時會提示沒有錯誤(error)和警告(warning),如下圖所示:

圖1:dev c++ 的提示

圖2:vc 6.0 的提示

圖3:c-free 5.0 的提示

對於 vs、gcc、xcode 等,如果**沒有錯誤,它們只會顯示「生成成功」,不會顯示「0個錯誤,0個警告」,只有**真的出錯了,它們才會顯示具體的錯誤資訊。
錯誤(error)表示程式不正確,不能正常編譯、鏈結或執行,必須要糾正。

警告(warning)表示可能會發生錯誤(實際上未發生)或者**不規範,但是程式能夠正常執行,有的警告可以忽略,有的要引起注意。

錯誤和警告可能發生在編譯、鏈結、執行的任何時候。

例如,puts("c語言中文網")最後忘記寫分號;,就會出現錯誤,如下圖所示:

圖4:vs2015 的錯誤提示

圖5:dev c++ 的錯誤提示

圖6:vc 6.0 的錯誤提示

圖7:c-free 5.0 的錯誤提示

可以看出,c-free 的錯誤提示資訊比較少,不方便程式設計師糾錯。vc 和 vs 的錯誤資訊類似,只是中英文的差別。

下圖分析了 vc 6.0 的錯誤資訊:

圖8:錯誤資訊說明

翻譯:原始檔 e:\cdemo\hello.c 第5行發生了語法錯誤,錯誤**是 c2143,原因是 'return' 前面丟失了 ';'。

我敢保證,你寫的**肯定會發生錯誤,一定要有分析錯誤的能力,這是乙個合格的程式設計師必備的技能。

C語言程式的錯誤和警告

一段 在編譯 鏈結和執行的各個階段都可能會出現問題。編譯器只能檢查編譯和鏈結階段出現的問題,而可執行程式已經脫離了編譯器,執行階段出現問題編譯器是無能為力的。如果我們編寫的 正確,執行時會提示沒有錯誤 error 和警告 warning 如下圖所示 圖1 dev c 的提示 圖2 vc 6.0 的提...

C語言程式的錯誤和警告

一段c語言 在編譯 鏈結和執行的各個階段都可能會出現問題。編譯器只能檢查編譯和鏈結階段出現的問題,而可執行程式已經脫離了編譯器,執行階段出現問題編譯器是無能為力的。如果我們編寫的 正確,執行時會提示沒有錯誤 error 和警告 warning 如下圖所示 圖1 dev c 的提示 圖2 vc 6.0...

編譯器警告和錯誤詳解

原文 1.warning 550 d variable d was set but never used 描述 變數 d 定義但從未使用,或者是,雖然這個變數你使用了,但編譯器認為變數d所在的語句沒有意義,編譯器把它優化了.解決 仔細衡量所定義的變數d是否有用,若是認定變數d所在語句有意義,那麼嘗試...