所谓程序调试是指对程序的查错和排错。

调试程序一般应经过以下几个步骤:

一、先进行人工检查,即静态检查。

在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查。这一步十分重要,它能发现程序设计人员由于疏忽而造成的

多数错误。这一步往往容易被人忽视,总希望把一切都推给计算机去做,但这样会多占用机器时间,作为一个程序人员应当养成严谨的作风,每一步都要严格把关,不把问题留给后面的工序。

为了更有效地进行人工检查,所编的程序应力求做到以下几点:

①应当采用结构化程序方法编程,以增加可读性;

②尽可能多加注释,以帮助理解每段程序的作用;

③在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。各函数之间除用

参数传递数据外,尽量少出现耦合关系,这样便于分别检查和处理。

二、在人工检查无误后,再上机调试。

通过上机发现错误称为动态检查。在编译时会给出语法错误的信息,调试时可以根据提示信息具体找出程序中出错之处并改正。应

当注意的是有时提示出错的地方并不是真正出错的位置,如果在提示出错的行找不到错误的话应当到上一行再找。

有时提示出错的类型并非绝对准确,由于出错的情况繁多且各种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。

如果系统提示的出错信息很多,应当从上到下逐一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能

只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息。这时只要加上一个变量定义,就所有错误都消除了。

三、在改正语法错误(包括“错误(error)”和“警告(warning)”)后,程序经过连接(link)就得到可执行的目标程序。

四、运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:

如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,逐段往下检查。

直到找到在某一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就能发现错误所在。

也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不用再编译了,也不再被执行了)。这种方法可以不必一一去掉printf函数语句,以提高效率。

有的系统还提供debug(调试)工具,跟踪程序并给出相应信息,使用更为方便,请查阅有关手册。

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习:

编程学习:

c语言入门篇:程序调试方法相关推荐

  1. 【C/C++语言入门篇】-- 文件操作

    [C/C++语言入门篇]-- 文件操作 收藏 此文于2010-03-09被推荐到CSDN首页 如何被推荐? 最近实在是太忙了,这篇整整就推迟了1个月了,实在是对不起.之前本打算这个模块就结束了,文件操 ...

  2. 在c语言中调试作用是什么意思,c语言程序调试方法整理

    c语言程序的调试方法 所谓程序调试是指对程序的查错和排错. 调试程序一般应经过以下几个步骤: 一.先进行人工检查,即静态检查. 在写好一个程序以后,不要匆匆忙忙上机,而应对程序进行人工检查.这一步十分 ...

  3. 明解C语言入门篇_第8章_动手编写各种程序吧

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  4. 明解C语言入门篇_第4章_程序的循环控制

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  5. 前端程序调试方法总结--高级版

    文章目录 前端程序调试方法总结--初级版 引言 一.先来认识一下这些按钮的功能 二.Sources资源页面的断点调试 三.Post man你值得拥有的网络请求神器 完结 前端程序调试方法总结–初级版 ...

  6. 明解C语言入门篇_第12章_结构体

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  7. 视频教程-C语言入门篇-C/C++

    C语言入门篇 23年C++语言编程经验,经历过多个行业的开发项目包括网络安全,网络游戏,通信行业等等,多年的摸爬滚打使自身具备了深厚的开发实力和实战经验. 王健伟 ¥98.00 立即订阅 扫码下载「C ...

  8. 明解C语言入门篇_第9章_字符串的基本知识

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  9. 明解C语言入门篇_第10章_指针

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

  10. 明解C语言入门篇_第13章_文件处理

    前言 本文为业余学习<明解C语言入门篇>的记录,包含代码清单和练习题. 开始学习时间:2022年8月21日 +++++++++++++++++++++++++++++++ 第1章 初识C语 ...

最新文章

  1. MATLAB神经网络样本数量太大,MATLAB搭建bp神经网络的误差特别大,但R2的值也大,求解帮我看看我的网络哪里出问题了...
  2. Python读取xlsx文件报错:raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+‘; not supported‘)
  3. 聊一聊:下班后的消息,要不要回?
  4. 爬虫 spider08——爬取腾讯娱乐新闻【使用redis去重】
  5. java中Comparable实现对象的比较
  6. SpringCloud Gateway 服务网关,限流
  7. oracle数据库dca,有关Oracle数据库
  8. 关于 min_25 筛的入门以及复杂度证明
  9. Nifi flow 备份恢复
  10. vue函数@click.prevent使用纪要
  11. QuartusII软件异常:Error: Top-level design entity is undefined
  12. BZOJ 3238 差异 [后缀自动机]
  13. 基于stm32Cubemx的矩阵键盘配置
  14. GPT-3.5 也能直接联网了!
  15. 决定了,把以前做过的CF,TC总结都补上来
  16. 美国诚实签经验——必带材料:护照,证件照,DS160确认页,面试预约确认页,+境外照片...
  17. 拼多多获得搜索词推荐 API
  18. 2017年做微商如何赚钱
  19. PooledDataSource forcefully closed/removed all connections的解决
  20. TwinCAT设置项目开机自动启动

热门文章

  1. AltRun调用cmd并刷新DNS
  2. 图像处理——同态滤波
  3. 基于SSH的宠物管理系统(宠物商店)
  4. SAS means 过程帮助
  5. 【C++】算法集锦(11):敏感词过滤算法(DFA)
  6. 【积跬步以至千里】唧唧Down下载视频无法正常合并分段文件解决方案
  7. 毕业设计 大数据房价数据分析及可视化 - python 房价分析
  8. 数据库笔试题(答案)
  9. VoIP服务器曝重大漏洞,黑客可以绕过管理员身份
  10. 谷歌浏览器屏蔽广告插件