当前课程知识点:C语言程序设计 >  第22讲 编程训练 >  编程训练 >  常见的编译错误

返回《C语言程序设计》慕课在线视频课程列表

常见的编译错误在线视频

常见的编译错误

讲解了常见的几种“error”(严重错误)和“warnning” (警告错误)。

返回《C语言程序设计》慕课在线视频列表

常见的编译错误课程教案、知识点、字幕

多写程序是最好的学习编程的方法

但如果写的程序有语法错误

程序无法运行

你花了很多时间也排除不了

会严重的打击编程的积极性

本讲介绍初学者写C程序时常见的编译错误

目的是减少大家发现及排除错误的时间

提高写程序的效率

编译错误是编译器对程序进行语法检查时

发现的错误

也就是检查程序的写法

符合不符合C语言的书写规则要求

编译错误可分为“error”(严重错误)

和“warnning”(警告错误)两种情况

其中 “error”是必须要改正的错误

这类错误如果不改正

程序无法运行

“warnning”是编译器怀疑你写的程序可能不合理

有可能写的不对

这种类型的错误不修改程序也能运行

但你需要明白为什么会有这种警告错误

编译器会给出错误提示以及错误所在的行号

有时候错误确实发生在提示行

但很多时候引发错误的根源

可能在提示行的前一行

甚至很远的地方

下面我们看第一种常见的错误

就是变量未定义

变量使用前要定义

如果没有定义

就会引起这种错误

这种错误可能是由三种情况引起的

第1种

变量就是纯粹忘记定义了

第2种

没注意变量的大小写

因为C语言是区分大小写的

大写和小写有一点变化

那么编译器就认为是不同的变量

错误的可能3

拼写错误

比如b0写成bo等

我们下面来演示一下

这个是把三位整数逆序输出的程序

这个程序本身是没问题的

我们有意制造出刚才讲的这几种情况

首先第一种

就是你使用了变量但是没有定义

我们看看

比如说这个地方有意把x这个变量删掉

然后我们编译的时候

这个地方就会提示:“x undeclared…”

这个意思就是你没有定义

刚才讲的第二种情况就是你写的时候

可能是写成大写了

比如这种

你定义的是大写的X

但你后面用的是小写的x

同样的这个也会提示错误

说x没有定义

就是这个地方小写的x没有定义

你应该写大写X

这两者是完全不同的

还有就是

比如说你不小心把这个地方

比如说前面是b0

这地方不小心写成了bo

我们再编译看这种情况

同样的

会提示你这个“bo undeclared……”

对初学者来说

有些时候

这些细节可能不容易发现

好 我们把它改正确了

改正确了以后

这个地方编译完了以后就是0个error

0个warning

第二种类型的错误是漏写分号

C语言多数语句后面要加分号

忘了写就会引起这种错误

好 我们看

像这个c语言的语句当中这个地方

这儿……

这些地方都是有分号的

如果你漏写了的话

比如我们有意把这个地方分号删掉

编译一下

看一下

这个地方就有错误

“expected ;”就是在b0前期待分号

它说的很清楚

虽然提示在这儿

但是其实是说前面before b0

上面一行少了一个分号

C语言语句里面也不是每一句都要加分号

比如说这些地方

这都没必要写

还有一类常见的错误是在写程序的时候

误把中文符号当英文符号写

C语言中

除了注释和字符串里的字符

其它情况下都要使用英文字符

如果不小心使用中文字符

就会引起这种错误

而且有时候这种错误比较隐蔽

不太容易发现

好 我们还是拿这个程序来演示一下

比如说

你可能把这个地方这个分号写成了中文的分号

我们看一下

这种情况下编译他会提示什么

注意这个提示

在这一行

error 这样的提示

这种提示

当你习惯了以后

你看到这样一个三位数的数字表示的这种东西的话

那么这其实就告诉你

在这一行有中文符号在里面

有些时候可能不太容易一眼发现

但是中文符号和英文符号有一个很大的差别是

这个地方鼠标拉黑了以后

中文符号占两个字符宽度

英文符号

像这个占一个字符宽度

通过这种方式你就比较容易发现它

此外

还有像引号、括号

比如说你这个地方输入了这样一个符号

同样的也会提示你

还是一个这样的数字

你别管这个数字具体是多少

当你习惯以后

就知道这一行有中文符号

好 我们把这个改回来

下面我们看一下警告错误

警告错误的类型比较多

常见的有数据类型不匹配

可能损失精度

还有一种是定义的变量未使用

还有一种是变量使用前未赋值

这几种情况我们介绍一下

比如说这样

我们在这个地方填一个变量 叫b3

这个地方就会提示你:“unused variable b3”

就是说这个b3在后面没有使用

只定义了 没有使用

变量定义了但没有使用

这个本身并没有太大问题

第二种情况是变量定义了但没有初始化

我们把这个删掉

比如说这个地方x定义了

没有从键盘上输入这个x的值

没有输入x的值

这个地方就使用了x

那么我们看

这种情况下编译器也会给出提示“ x is used uninitialized”

意思就是x使用了但是没有初始化

这种情况的警告错误实际上是很严重的

程序虽然能运行

但是这种类型的警告错误必须要改掉

因为我们知道

变量在使用前必须要给它初始化

有一个确定的值

这个地方你没有从键盘输入值

就使用它

这个值是未知的

这个程序必定会有问题

所以在警告错误当中

这种警告错误是必须要引起注意的

C语言程序设计课程列表:

第0讲 导言

-简单介绍课程性质等

-关于编程训练

第1讲 C程序框架

-C程序框架

-作业

第2讲 C程序编译环境

-C语言的编译环境

-作业

第3讲 顺序程序的几个例子

-顺序程序的几个例子

-作业

第4讲 常见的编译错误

-常见的编译错误

-作业

-编译错误探讨

第5讲 输入输出精要

-输入输出精要

-作业

-输入输出格式探讨

第6讲 选择结构的典型例子

-选择结构的典型例子

-作业

第7讲 选择结构常见错误

-选择结构常见错误

-作业

第8讲 排除程序错误的常规方法

-排除程序错误的常规方法

-排除错误探讨

第9讲 循环结构基础

-循环结构基础

-作业

-循环类型

第10讲 循环结构程序例子

-循环结构程序例子

-作业

-程序结构

第11讲 函数基础

-函数基础

-作业

第12讲 函数举例

-函数举例(上)

-函数举例(下)

第13讲 变量的作用域与生存期

-变量的作用域与生存期

-变量的使用

第14讲 数组基础

-数组基础

-作业

第15讲 数组应用举例

-数组应用举例(上)

-数组应用举例(下)

第16讲 数组参数传递

-数组参数传递(上)

-数组参数传递(下)

-作业

第17讲 指针变量

-指针变量(上)

-指针变量(下)

-作业

第18讲 字符串

-字符串(上)

-字符串(下)

-作业

第19讲 程序调试

-程序调试

-程序调试的重要性

-程序调试讨论

第20讲 结构体及其应用

-结构体及其应用(上)

-结构体及其应用(下)

第21讲 文件

- 文件(上)

-文件(下)

第22讲 编程训练

- 编程训练

常见的编译错误笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。