- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序调试常用技巧与常见错误分析.doc
C语言程序调试常用技巧与常见错误分析 摘要:在C语言程序的开发过程中经常会伴随着多次对C语言程序进行修改调试的过程。本文讨论了C语言程序调试中常用技巧,分析了调试中常见错误,旨在促进我们编写出正确的程序,提高编程效率。 关键词:C语言;程序调试;常用技巧;常见错误 中图分类号:TP312.1 文献标识码:A 文章编号:1674-7712 (2012) 18-0032-01 当我们完成了C语言程序的源程序的编写之后,我们要使用C语言的编译器将其翻译成计算机能够执行的二进制代码形式的目标程序,再通过连接,最终形成可执行程序。但这个过程中可能会出现各类问题。比如编译未通过,连接未通过,或是生成了可执行程序,但并非我们的预期目标。 所谓程序调试,是指对程序的查错和排错。调试程序一般应经过人工检查,即静态检查;上机调试,即动态检查;运行程序,试验数据及检查和分析错误原因等几个步骤。 程序调试是一项细致深入的工作,需要下功夫、动脑子、善于累积经验。在程序调试过程中往往反映出一个人的水平、经验和科学态度。上机调试程序的目的决不是为了“验证程序的正确性”,而是“掌握调试方法和技术”。 一、调试过程中的一些常用技巧 1.先简后繁。先用一组简单的数据对程序进行测试,检验各函数是否有出错现象,然后用复杂数据对程序进行调试,直到确定程序对正常数据没有错误为止。 2.由大到小。出现错误时,要逐步缩小可能出现错误的范围,从整个程序到指定函数,再到指定区域,再到指定行。在对程序缩小范围或对编译没通过的程序缩小错误范围时可以用发“/* */”来进行调试,确定正常范围,缩小错误范围。 3.单步调试。编辑完C语言源程序并保存后,右按F8键进行主函数程序单步执行,如果源程序无语法错误,则每按一次F8键执行一句主函数程序,同时可用Ctrl+F7组合键设置所要跟踪的变量,以查看程序的执行进程,从而更容易查出程序的错误。但是,F8键只能单步执行主函数程序,它将调用非主函数视为一条语句执行,并不能转到被调函数的内部进行语句单步运行,所以在有些程序出错时,不能精确查出出错位置。因此,当主函数调用其它函数时,应当使用F7键,它能在F8键功能的基础之上,进一步深入到被调用函数内部,从而真正做到程序单步执行,即每按一次F7键,仅执行一条语句,遇到函数调用就转到被调用函数内部执行语句。当使用F8或F7进行单步调试时,应当用Ctrl+F7进行变量跟踪。 4.设置断点。断点就是程序运行中可能会中断的地方,方便开发者在程序运行的过程中查看程序当前的运行状态,比如变量的值、函数的返回值等等。F9用于在当前光标所在前行下断点,如果当前行已经有断点,则取消断点。有的地方不能下断点,比如空行、基本类型定义语句(未初始化)等等非执行语句。 二、常见错误分析 在实际的C语言编程过程中可能会出现各种各样的错误。这其中可能有算法错误,有因为对C语言中的某些语法知识理解的不正确而产生的错误,还有因为疏怱大意而产生的程序的录入错误等等。这些错误中,算法错误必须经过后期的试运行和调试才能解决,而其他错误是可以经过训练能够避免的。 (一)由于语法知识理解不正确而导致的错误 这类错误有时并不能被马上发现,因为有些情况下错误会被编译器识别并报错,而有些却不能被编译器识别,但运行结果却和预计的情况不一致。以下是在这方面常见的一些出错的情况。 1.转义字符的用法不当。决不能用的字符是由单个字符组成,而转义字符却是很特殊的一类字符,它是以一个键盘符号反斜杠“\”开始后跟上单个字符或是若干个字符组成的,通常用来表示键盘上的控制代码或特殊符号,例如回车换行符、响铃符号等。程序设计过程中有时不能正确地区分转义字符和普通字符。 2.有符号型转换成无符号型。在数据类型中,有时候会遇到将有符号的数据转换成无符号的数据。要想解决这个问题,我们一定要明白数据在计算机中是如何存储的。数据在机器中的存储是以二进制补码形式存储,正数的符号“+”用二进制0表示,而负数的符号“-”用1来表示,正数的原码补码相同,但是负数的补码是其原码的二进制位取反加1。这样来回转换很麻烦,也容易搞错。 3.“%”的连续使用。在C语言中“%”作为格式描述字符用在输入输出语句中,当我们需要将多个 “%”一起作用时则应特别注意。 4.break语句和continue语句。如果程序设计者搞不清楚break语句和continue语句,没有真正理解两者的含义,所以也容易犯错误。这两个语句都可以用在循环语句中,但两者的作用不同。break语句主要的作用是用来跳出该循环,提前结束循环,接着执行循环语句下面的语句;而continue语句主要作用是结束本次循环,
文档评论(0)