一段代码,在编译、链接和运行的各个阶段都可能会出现问题。编译器只能检查编译和链接阶段出现的问题,而可执行程序已经脱离了编译器,运行阶段出现问题编译器是无能为力的。

如果我们编写的代码正确,运行时会提示没有错误(Error)和警告(Warning),如下图所示:

第2章 C语言初探:10、C语言程序的错误和警告
图1:C-Free 5.0 的提示第2章 C语言初探:10、C语言程序的错误和警告
图2:VC 6.0 的提示

错误(Error)表示程序不正确,不能正常编译、链接或运行,必须要纠正。

警告(Warning)表示可能会发生错误(实际上未发生)或者代码不规范,但是程序能够正常运行,有的警告可以忽略,有的要引起注意。

错误和警告可能发生在编译、链接、运行的任何时候。例如,puts("C语言中文网")最后忘记写分号;,就会出现错误,如下图所示:

第2章 C语言初探:10、C语言程序的错误和警告
图3:C-Free 5.0 的错误提示第2章 C语言初探:10、C语言程序的错误和警告
图4:VC 6.0 的错误提示

可以看出,VC 6.0给出的错误信息更加丰富也更加科学,指出了具体的错误细节:

第2章 C语言初探:10、C语言程序的错误和警告
图5:错误信息说明

翻译:源文件 E:\cDemo\hello.c 第5行发生了语法错误,错误代码是 C2143,原因是 'return' 前面丢失了 ';'。

我敢保证,你写的代码肯定会发生错误,一定要有分析错误的能力,这是一个合格的程序员必备的技能。

» 订阅本站: http://www.0523jz.com/feed