c语言程序调试常用技巧和常见错误研究

c语言程序调试常用技巧和常见错误研究

ID:5246613

大小:27.50 KB

页数:6页

时间:2017-12-06

c语言程序调试常用技巧和常见错误研究_第1页
c语言程序调试常用技巧和常见错误研究_第2页
c语言程序调试常用技巧和常见错误研究_第3页
c语言程序调试常用技巧和常见错误研究_第4页
c语言程序调试常用技巧和常见错误研究_第5页
资源描述:

《c语言程序调试常用技巧和常见错误研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C语言程序调试常用技巧和常见错误研究  摘要:在C语言程序的开发过程中经常会伴随着多次对C语言程序进行修改调试的过程。本文讨论了C语言程序调试中常用技巧,分析了调试中常见错误,旨在促进我们编写出正确的程序,提高编程效率。关键词:C语言;程序调试;常用技巧;常见错误中图分类号:TP312.1文献标识码:A文章编号:1674-7712(2012)18-0032-01当我们完成了C语言程序的源程序的编写之后,我们要使用C语言的编译器将其翻译成计算机能够执行的二进制代码形式的目标程序,再通过连接,最终形成可

2、执行程序。但这个过程中可能会出现各类问题。比如编译未通过,连接未通过,或是生成了可执行程序,但并非我们的预期目标。所谓程序调试,是指对程序的查错和排错。调试程序一般应经过人工检查,即静态检查;上机调试,即动态检查;运行程序,试验数据及检查和分析错误原因等几个步骤。程序调试是一项细致深入的工作,需要下功夫、动脑子、善于累积经验。在程序调试过程中往往反映出一个人的水平、经验和科学态度。上机调试程序的目的决不是为了“验证程序的正确性”,而是“掌握调试方法和技术”。一、调试过程中的一些常用技巧61.先简后繁

3、。先用一组简单的数据对程序进行测试,检验各函数是否有出错现象,然后用复杂数据对程序进行调试,直到确定程序对正常数据没有错误为止。2.由大到小。出现错误时,要逐步缩小可能出现错误的范围,从整个程序到指定函数,再到指定区域,再到指定行。在对程序缩小范围或对编译没通过的程序缩小错误范围时可以用发“/**/”来进行调试,确定正常范围,缩小错误范围。3.单步调试。编辑完C语言源程序并保存后,右按F8键进行主函数程序单步执行,如果源程序无语法错误,则每按一次F8键执行一句主函数程序,同时可用Ctrl+F7组合键

4、设置所要跟踪的变量,以查看程序的执行进程,从而更容易查出程序的错误。但是,F8键只能单步执行主函数程序,它将调用非主函数视为一条语句执行,并不能转到被调函数的内部进行语句单步运行,所以在有些程序出错时,不能精确查出出错位置。因此,当主函数调用其它函数时,应当使用F7键,它能在F8键功能的基础之上,进一步深入到被调用函数内部,从而真正做到程序单步执行,即每按一次F7键,仅执行一条语句,遇到函数调用就转到被调用函数内部执行语句。当使用F8或F7进行单步调试时,应当用Ctrl+F7进行变量跟踪。64.设置

5、断点。断点就是程序运行中可能会中断的地方,方便开发者在程序运行的过程中查看程序当前的运行状态,比如变量的值、函数的返回值等等。F9用于在当前光标所在前行下断点,如果当前行已经有断点,则取消断点。有的地方不能下断点,比如空行、基本类型定义语句(未初始化)等等非执行语句。二、常见错误分析在实际的C语言编程过程中可能会出现各种各样的错误。这其中可能有算法错误,有因为对C语言中的某些语法知识理解的不正确而产生的错误,还有因为疏怱大意而产生的程序的录入错误等等。这些错误中,算法错误必须经过后期的试运行和调试才

6、能解决,而其他错误是可以经过训练能够避免的。(一)由于语法知识理解不正确而导致的错误这类错误有时并不能被马上发现,因为有些情况下错误会被编译器识别并报错,而有些却不能被编译器识别,但运行结果却和预计的情况不一致。以下是在这方面常见的一些出错的情况。1.转义字符的用法不当。决不能用的字符是由单个字符组成,而转义字符却是很特殊的一类字符,它是以一个6键盘符号反斜杠“\”开始后跟上单个字符或是若干个字符组成的,通常用来表示键盘上的控制代码或特殊符号,例如回车换行符、响铃符号等。程序设计过程中有时不能正确地

7、区分转义字符和普通字符。2.有符号型转换成无符号型。在数据类型中,有时候会遇到将有符号的数据转换成无符号的数据。要想解决这个问题,我们一定要明白数据在计算机中是如何存储的。数据在机器中的存储是以二进制补码形式存储,正数的符号“+”用二进制0表示,而负数的符号“-”用1来表示,正数的原码补码相同,但是负数的补码是其原码的二进制位取反加1。这样来回转换很麻烦,也容易搞错。3.“%”的连续使用。在C语言中“%”作为格式描述字符用在输入输出语句中,当我们需要将多个“%”一起作用时则应特别注意。4.break

8、语句和continue语句。如果程序设计者搞不清楚break语句和continue语句,没有真正理解两者的含义,所以也容易犯错误。这两个语句都可以用在循环语句中,但两者的作用不同。break语句主要的作用是用来跳出该循环,提前结束循环,接着执行循环语句下面的语句;而continue语句主要作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。5.函数参数值传递。在函数参数传递的过程中,很多设计者很容易搞错实参在什么时候值不变,什么时候

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。