C语言程序常见错误与调试方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言程序常见错误与调试方法CProgramming(一)C语言程序常见错误•程序设计很少能够没有错误的一次完成,在编程的过程中由于种种原因,总会出现这样或那样的错误,这些程序的错误也就是常说的“Bug”,而检测并修正这些错误就是“Debug”(调试)。•程序错误可分为三类:语法错误、运行错误和逻辑错误。CProgramming1、语法错误•语法错误是指那些由于编程中输入不符合语法规则产生的错误。•例如:表达式不完整、缺少必要的标点符号、关键字输入错误、数据类型不匹配、循环语句或选择语句的关键字不配对等。•通常,编译器对程序进行编译的过程中,会把检测到的语法错误以提示的方式列举出来。CProgramming2、运行错误•运行错误是指程序在运行过程中出现错误。•例如:进行除法运算时除数为零、数组下标越界、文件无法打开等。•这类错误只出现在运行过程中,在程序编译时一般是无法发现的。CProgramming3、逻辑错误•逻辑错误是指程序运行后,没有得到预期的结果。这类错误从语法上来说是有效的,但是程序逻辑上存在缺陷。•例如:使用了不正确的变量类型、循环条件不正确、程序设计算法考虑不周等。•一般情况下,编译器在编译程序时,不能检查到程序的逻辑错误,也不会产生逻辑错误提示信息。CProgramming(二)语法错误的分类•语法错误的调试,可以由集成开发环境提供的调试功能来完成,在程序进行编译时,编译器会对程序中的语法错误进行诊断。•编译诊断的语法错误分为3类:致命错误、错误和警告。CProgramming1、致命错误•“致命错误”大多数是编译程序内部发生错误。•发生这类错误时,编译被迫终止,只能重新启动编译程序。幸运的是,这类错误很少发生,但是为了安全,编译前最好先保存程序。CProgramming2、错误•“错误”通常是在编译时,语法不当所引起的,例如括号不匹配、变量为声明等。•产生这类错误时,编译程序会出现报错提示,根据提示对源程序进行修改即可。这类错误是出现最频繁的。CProgramming3、警告•“警告”是指被编译程序怀疑有错,但不确定,有时可强行编译通过。例如:主函数没有返回值时没有加void声明、double型数据被转换为float型数据等。•这些警告中,有些会导致错误,有些则可以编译通过。CProgramming(三)C语言程序调试方法1、先进行人工检查,即静态检查。•在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查。这一步十分重要,它能发现由于疏忽而造成的多数错误。这一步往往容易被人忽视,总希望把一切都推给计算机去做,但这样会多占用机器时间,作为一个程序设计人员应当养成严谨的作风,每一步都要严格把关,不把问题留给后面的工序。CProgramming(三)C语言程序调试方法•为了更有效地进行人工检查,所编的程序应力求做到以下几点:1)应当采用结构化程序方法编程,以增加可读性;2)尽可能多加注释,以帮助理解每段程序的作用;3)在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。这样便于分别检查和处理。CProgramming(三)C语言程序调试方法2、在人工检查无误后,再上机调试。即动态检查。•在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正。应当注意的是有时提示出错的地方并不是真正出错的位置,如果在提示出错的行找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多且各种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。CProgramming(三)C语言程序调试方法3、对运行结果作分析,看它是否符合要求。•有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。•有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以很容易判断结果正确与否。•事实上,当程序复杂时很难把所有的可能情况全部都试到,选择典型的临界数据作试验即可。CProgramming(三)C语言程序调试方法4、运行结果不对,大多属于逻辑错误。•这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:1)将程序与流程图仔细对照,如果流程图是正确的,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。CProgramming(三)C语言程序调试方法2)如果实在找不到错误,可以采用“分段检查”的方法。逐段往下检查,直到找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。3)如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题。有则改正之,接着修改程序。CProgramming(三)C语言程序调试方法•总之,程序调试是一项深入细致的工作,需要下功夫,动脑子,善于积累经验。在程序调试过程中往往反映出一个人的水平、经验和态度。希望大家给以足够的重视。上机调试程序的目的决不是为了“验证程序的正确”,而是“掌握调试的方法和技术”,要学会自己找问题,这样慢慢自己就会写出错误较少的实用程序。CProgrammingEND

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功