对C语言程序设计调试技术的几点探讨

来源 :科学与财富 | 被引量 : 0次 | 上传用户:liu8423824
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:C语言程序的功能强大,具有表达能力强、使用灵活、应用范围广、目标程序处理迅速、可移植性强,且其具有对硬件进行直接操作的功能,促使其在实际生产中得到广泛应用。C语言是一种高效的结构化语言,文章主要针对C语言程序设计调试技术展开探讨。
  关键词:C语言程序;调试技术;探究与分析
  近些年来,笔者在研究C语言程序设计过程中,发现许多人对于自身编辑的C语言程序运行中出现的错误的处理方法存在许多问题,无法有效判断程序错误的原因以及其对应的调试方法,文章主要从两方面分析C语言程序设计调试技术。
  一、运行错误的判断与调试
  一般情况下,C语言程序运行错误被分为两种:逻辑错误与程序设计错误,前者是指编译时没有错误提示,可以运行,但实际的运行结果与程序预期结果之间有偏差;后者是指程序设计中存在的问题,在编译与连接程序时也没有被发现,程序设计错误的主要表现为:计算机突然死机、自行热启动或输出信息混乱等[1]。
  文章主要介绍两种常见的运行错误调试方法:
  ①程序算法设计不合理
  有一种逻辑错误主要是由于C语言程序设计时的算法不合理而引起的,例如对边界及特殊情况未作预先处理,例如下述循环:
  While(count)
  ﹛
  …
  count=count-1;
  ﹜
  该循环的设计构思是进行count次循环,但是在该循环中,while旁边的判断条件恒为真,程序就会进入“死循环”,这显然是由于算法设计错误而导致的,但是编译器对于该类错误的敏感度较低,只有程序运行出现异常的时候才可能被发现[3]。再举一个例子:根据海伦公式计算三角面积的时候,首先需要对给出的三条边长是否符合“三角形任何两边的和大于第三边”的定理,若不符合这一定理则运算结果毫无意义;而程序员在设计一般实系数一元二次方程的程序时,必须设定处理复数情况的程序,避免出现运行错误[4]。若采用手算的方法是不需要先考虑到这方面,可以在出现问题后再根据实际情况提出解决措施。但是C语言程序是为计算机设计的,计算机不具备人脑自行应变的能力,因此,在程序设计的过程中必须事先将可能发生的一切问题都考虑到,特别是客户委托程序员设计的或是作为商品出售的软件更要注意这一问题。
  ②程序输入时的打字错误
  还有一种常见的逻辑错误是在C语言程序输入过程中,由于程序员不小心打错字导致的,例如将判断条件中的“>=”输为“>”,将相等判断“==”输为“=”等。存在此类错误的程序在运行过程中出现的错误表现具有多样化,且很难将该错误出现的原因与打字错误联系起来[5]。
  数据输入中存在的字符错误或字符的格式错误等都会影响程序的运行结果,尤其是在数据量大,且数据输入采用人工输入的工作中,极其容易发生这种错误。笔者以多年工作经验建议当数据输入量较大时,采用文件记录的方式,再通过读写文件来进行数据输入,这样就能够通过编辑数据文件来检测数据中存在的错误,并且在重新计算或调试过程中就不需要反复输入[6]。这种方法非常适用于科学或工程计算应用程序中的数据计算。
  还有一种方式就是采用自行编写的、比较完善的数据校验输入模块来取代C语言中的scanf()函数来输入数据。这种方法多用于数据处理、事务管理等复杂的应用程序开发,常常需要将数据输入与用户界面等模块相结合,对编程技能有较高的要求。
  二、C语言程序设计基本调试方法
  文章主要针对C语言程序设计基本调试方法的四种方法进行介绍。
  1.标准数据校验
  在程序编译、连接完毕之后,下一阶段就是运行调试。运行调试阶段首先需要使用若干组已知结果的标准数据对程序进行检验。在此过程中标准数据的选取对检验结果具有重要影响,因此,标准数据的选择需要选取具有代表性且比较简洁的数据,主要是为了简化对检验结果正确性分析的不足[7]。此外,对重要的临界数据也需要进行检验。
  2.程序跟踪
  对于复杂的大型程序而言,上述检验一次性通过是不可能完成的。一般情况下,程序存在各种各样的问题(程序存在问题是一个普遍现象,一个错误也没有的程序在实际中较少),因此,需要对程序进行严谨的跟踪调试。
  程序跟踪是调试工作中的一种方法。程序跟踪的方法是通过让程序一句一句的执行,通过观察程序执行过程中的数据以及程序的流程变化来分析其中存在的错误。例如在Turbo C中,可以采用两种程序跟踪的方法,一种是通过利用集成环境中分步执行、断点设置以及变量内容显示等功能观察程序的合理性;还有一种方法是传统方法,其主要通过在程序中直接设置断点、打印重要变量来观察程序有无错误存在。
  3.边界检查
  在数据检查过程中,要重视边界可能存在的特殊情况,例如以下循环:
  While(count<1000)
  ﹛
  …
  ﹜
  需要检查设计数据count等于0、负数、999及1000等情况。若程序中存在if-else或switch等语言组成的分支时,也需要设计相应的判断数据,且对分支中的路径进行检测。
  4.简化循环次数
  在调试程序的过程中,可以通过简化程序来实现提升调试速度的目的,例如减少循环次数、減小数组规模、屏蔽部分次要程序段等方法。但是在简化程序的过程中,要注意不能太过简化,否则无法代表程序真实的运行状况。举个例子来说,对于一个求解N元一次方程组的程序来说,仅通过将N设置为2的检测是远远不够的,不能确定该程序是否在数值较大的方程组中也能得出正确的数据。若在N=5或6的情况下程序计算正确,则可以确保程序出错的可能性较小。
  结束语
  计算机技术的不断发展促使现代人们工作、学习以及生活方式发生巨大改变,且随着计算机软件功能的不断强大,使得计算机软件广泛应用于各个领域中。但是在C语言程序应用过程中,程序错误的出现威胁着程序软件的正常运行。因此,提高程序安全性成为程序员有待解决的问题。文章主要针对C语言程序设计调试技术展开分析,首先介绍了C语言运行错误的判断与调试,分析了2种常见逻辑错误判断与调试方法,然后针对4种C语言程序设计基本调试方法进行阐述,旨在提高C语言程序设计调试技术水平。
  参考文献
  [1]张秀美,赵旭霞.程序调试技术在C语言函数教学中的应用[J].教育教学论坛,2014,22(11):85-86.
  [2]崔光佐,程旭,佟冬等.面向处理器的系统级模拟、仿真及调试技术 ——基于软硬件协同设计的新方法[J].计算机研究与发展,2011,38(3):361-367.
  [3]李从宇,王宝光.嵌入式DSP系统C语言硬件编程技术[J].测控技术,2013,26(4):68-70.
  [4]姚放吾,金鑫.基于Monitor的C语言源代码调试器的设计与实现[J].计算机技术与发展,2014,21(6):55-58.
  [5]吴兴华.基于C语言软件开发的效率、移植及调试[J].数字技术与应用,2013,14(12):172-172.
  [6]林广栋,黄光红,耿锐等.一种DWARF格式C语言调试信息分析方法[J].电脑知识与技术,2014,14(25):5825-5833.
  [7]陈圣磊,刘林源.调试技术在C语言程序设计教学中的作用探讨[J].电脑知识与技术,2015,11(24):80-82.
其他文献
摘 要:加强变电一次设备的检修工作,确保设备能够正常稳定运转,对保障整个电力系统的安全性与可靠性意义重大。本文对当前我国变电一次设备检修的现状进行了分析,并在此基础上提出了改进措施,最后对变电一次设备检修工作的发展趋势进行了探讨,希望对变电设备的检修管理工作能够有所借鉴。  关键词:变电一次设备,检修现状,发展趋势  1引言  改革开放以来,我国的经济社会取得了飞速的发展和进步,这一方面促进了工业
摘 要:近年来,我国园林绿化工程的发展速度越来越快,但是在快速发展的同时也不可避免的存在一些问题,本文根据作者多年的工作经验,对我国园林绿化施工方面的问题进行了探讨。  关键词: 园林绿化;建设施工;技术  前言  随着生活水平的提高,人们对环境的要求也随之增高,越来越多的人追求一种健康的状态和环境,因此园林工程的作用日益凸显。园林工程的建设可以改善人类赖以生存的环境,并且能在环境破坏过程中起到一
摘 要:我国大学生的就业制度从计划走向市场,从统包统配转向自主择业,双向选择,至今已走过30多年。发展到今天,全球正处于金融危机后的恢复时期,各高校也逐年扩招,大学生就面临着更加严峻的就业形势,所以研究大学生的就业问题便成了现在社会倍加关注的问题。  关键词:大学生 就业现状 就业形势  一、当代大学生的就业现状  当代大学生就业现状不容乐观,出现了很多新型的就业群体,“蚁族”就是其中之一,它是大
民族振兴,教育为本;教育振兴,教师为本。高校教师是高校实现人才培养、科学研究和社会服务三大任务的战略性资源。从经济全球化和教育国际化的趋势来看,高水平的教师队伍建设已经
摘 要:树立正确的社会主义核心价值观是建设社会主义核心价值体系的根本要求,是践行雷锋精神的应有之义,是提升全民族文明素质,增强中华文化软实力、向心力、震撼力的有效法宝。随着社会主义市场经济的快速发展以及多元文化的冲击,当代大学生的主体意识逐渐觉醒,价值观也呈现出多元化、实用化和矛盾化等特点,因此,加强大学生社会主义核心价值观教育也就成了时代的必然要求。国内学术界对大学生社会主义核心价值观的构建路径
金融危机频繁发生和巴塞尔新资本协议对风险的关注表明信用风险评估已经成为金融风险管理领域的重要课题。金融风险的防范也成为国际金融市场发展中的首要问题。商业银行是我国金融行业的中坚力量,商业银行信用风险在我国金融风险中表现的最为主要且显著,影响着经济运行。在商业银行信用风险管理的过程中,信用风险评估是防范信用风险的核心环节,对信用风险防范和控制至关重要。本文将影响商业银行信用风险的贷款企业作为主要的研
西藏日报为了加强对百万翻身农奴进行爱国主义教育,向广大进藏干部、职工、官兵介绍祖国各地社会主义建设的成就,于今年年初向全国务兄弟省(区)的党报发出了请求帮助组织《
黄麻种子较小,具有较强的生理活性,未妥善贮藏的种子,一年内即可完全丧失发芽力;用普通方法贮藏,种子活力也下降很快。据资源种子研究,充分干燥的黄麻种子在密闭干燥条件下
浙江省庆元县万里林场在百山组自然保护区试种人参和西洋参成功.成药分析根中总皂甙含量分别为3.9%和6.91%.产品质量居全国最高水平. Yuanli Mountain Farm in Qingyuan Co
本研究1986~1990年在山西运城地区进行。结果表明:6月20~30日,人工去除地膜棉株下部1~3个果枝上的早蕾后,对铃病具有明显的防治作用,相对防病效果达81.8~93.0%。其防病的机理,与