c语言入门篇:程序调试方法
所谓程序调试是指对程序的查错和排错。
调试程序一般应经过以下几个步骤:
一、先进行人工检查,即静态检查。
在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查。这一步十分重要,它能发现程序设计人员由于疏忽而造成的
多数错误。这一步往往容易被人忽视,总希望把一切都推给计算机去做,但这样会多占用机器时间,作为一个程序人员应当养成严谨的作风,每一步都要严格把关,不把问题留给后面的工序。
为了更有效地进行人工检查,所编的程序应力求做到以下几点:
①应当采用结构化程序方法编程,以增加可读性;
②尽可能多加注释,以帮助理解每段程序的作用;
③在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。各函数之间除用
参数传递数据外,尽量少出现耦合关系,这样便于分别检查和处理。
二、在人工检查无误后,再上机调试。
通过上机发现错误称为动态检查。在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正。应
当注意的是有时提示出错的地方并不是真正出错的位置,如果在提示出错的行找不到错误的话应当到上一行再找。
有时提示出错的类型并非绝对准确,由于出错的情况繁多且各种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。
如果系统提示的出错信息很多,应当从上到下逐一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能
只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息。这时只要加上一个变量定义,就所有错误都消除了。
三、在改正语法错误(包括“错误(error)”和“警告(warning)”)后,程序经过连接(link)就得到可执行的目标程序。
四、运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:
如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,逐段往下检查。
直到找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。
也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不用再编译了,也不再被执行了)。这种方法可以不必一一去掉printf函数语句,以提高效率。
有的系统还提供debug(调试)工具,跟踪程序并给出相应信息,使用更为方便,请查阅有关手册。
另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~
UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~
分享(源码、项目实战视频、项目笔记,基础入门教程)
欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!
编程学习:
编程学习:
c语言入门篇:程序调试方法相关推荐
- 【C/C++语言入门篇】-- 文件操作
[C/C++语言入门篇]-- 文件操作 收藏 此文于2010-03-09被推荐到CSDN首页 如何被推荐? 最近实在是太忙了,这篇整整就推迟了1个月了,实在是对不起.之前本打算这个模块就结束了,文件操 ...
- 在c语言中调试作用是什么意思,c语言程序调试方法整理
c语言程序的调试方法 所谓程序调试是指对程序的查错和排错. 调试程序一般应经过以下几个步骤: 一.先进行人工检查,即静态检查. 在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查.这一步十分 ...
- 明解C语言入门篇_第8章_动手编写各种程序吧
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
- 明解C语言入门篇_第4章_程序的循环控制
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
- 前端程序调试方法总结--高级版
文章目录 前端程序调试方法总结--初级版 引言 一.先来认识一下这些按钮的功能 二.Sources资源页面的断点调试 三.Post man你值得拥有的网络请求神器 完结 前端程序调试方法总结–初级版 ...
- 明解C语言入门篇_第12章_结构体
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
- 视频教程-C语言入门篇-C/C++
C语言入门篇 23年C++语言编程经验,经历过多个行业的开发项目包括网络安全,网络游戏,通信行业等等,多年的摸爬滚打使自身具备了深厚的开发实力和实战经验. 王健伟 ¥98.00 立即订阅 扫码下载「C ...
- 明解C语言入门篇_第9章_字符串的基本知识
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
- 明解C语言入门篇_第10章_指针
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
- 明解C语言入门篇_第13章_文件处理
前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...
最新文章
- MATLAB神经网络样本数量太大,MATLAB搭建bp神经网络的误差特别大,但R2的值也大,求解帮我看看我的网络哪里出问题了...
- Python读取xlsx文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)
- 聊一聊:下班后的消息,要不要回?
- 爬虫 spider08——爬取腾讯娱乐新闻【使用redis去重】
- java中Comparable实现对象的比较
- SpringCloud Gateway 服务网关,限流
- oracle数据库dca,有关Oracle数据库
- 关于 min_25 筛的入门以及复杂度证明
- Nifi flow 备份恢复
- vue函数@click.prevent使用纪要
- QuartusII软件异常:Error: Top-level design entity is undefined
- BZOJ 3238 差异 [后缀自动机]
- 基于stm32Cubemx的矩阵键盘配置
- GPT-3.5 也能直接联网了!
- 决定了,把以前做过的CF,TC总结都补上来
- 美国诚实签经验——必带材料:护照,证件照,DS160确认页,面试预约确认页,+境外照片...
- 拼多多获得搜索词推荐 API
- 2017年做微商如何赚钱
- PooledDataSource forcefully closed/removed all connections的解决
- TwinCAT设置项目开机自动启动