购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 简单程序举例

阅读以下三个程序,进一步理解上节所介绍的C语言语法要素。

/*程序1-3:计算并输出一个整数的平方*/

/*程序1-4:输入两个整数,输出其中较大的整数*/

/*程序1-5:输入一个负实数,输出其绝对值*/

请编辑、编译、链接、运行以上3个程序,看看会遇到什么问题。

初学者常见的编译错误如下:

(1)遗漏分号;

(2)遗漏scanf()或printf()中的双引号;

(3)遗漏逗号;

(4)缺少必需的空格,如把“return 0;”写成“return0;”;

(5)缺少花括号。

在编译阶段,当编译器发现某些内容无法编译时,会停止工作,并给出错误提示,指出问题出在哪里。例如,将语句

int a,b,max;

误写成了

int a,b,max

VC 6.0编译器会给出以下错误提示,如图1-5所示。

图1-5 编译错误提示

编译器指出第7行scanf前缺少分号,而实际上是第5行的声明语句遗漏了一个分号。编译器所给错误消息为何与实际不符?原因在于,编译器并不关心换行符,上一行末尾的分号也可以放在下一行的开头,编译器读了第5行之后,它在期待一个分号,它跳过第6行的空行,在遇到第7行的下一个命令时,才能确定遗漏了一个分号,因此指出第7行有错。多数情况下,编译器能准确指出出错的位置,但如果在编译器所指示的行中找不到错误,通常错误是在前一行。

若在printf()函数中遗漏了双引号,VC 6.0编译器给出的错误信息如图1-6所示。

图1-6 编译错误提示

编译器给出15条错误提示,第一条错误提示正确指出了错误,unknown character意味着编译器无法识别一些符号,因为它们没有被双引号括起来。只要修改了该错误,程序就能顺利通过编译。我们得到的经验是,如果编译器报告了多个错误,首先要找到第一个错误,修改并重新编译,这个过程可能要重复多次,直到将编译器指出的所有错误修改完。

链接阶段的错误较少,通常是由于拼错函数名引起的。例如,把main写成mian,把printf写成print。 y91YGWE2IRmZ0Wmeji7uhWDdLFsxnfTIlz+sXmQbar1Yw1uvgJ9VWf1Hgf2T9l3U

点击中间区域
呼出菜单
上一章
目录
下一章
×