签到

06月21日
尚未签到

共有回帖数 0

    雷神

    等级:
     来这个贴吧逛了几天,发现很多人对程序的调试是一头雾水,以前也经常听到有人问我:“怎么调试程序啊?”问这个问题也无非是想知道有没有现成的窍门或者说有没有比较好的方法来调试一个程序。方法肯定有的,不过众所周知编程是一门脑力活,因此要说有个固定的套路固定的模式来调试程序,这比较难说。
      程序调试的过程其实就是检查程序的过程,有两个层次。一是比较低级的层次,就是语法错误的检查,这一层次的检查大部分应在你上机之前就要做好工作,不要把上机的时间浪费在检查低级语法错误上。但我只是说大部分,因为还有一小部分的语法错误比较隐蔽,这些错误多发生在诸如for、if这些语句里,从某种程度上说这些错误是合法的(符合语法)比如常见的这类错误:
    for(i=1;i=10;i++);
     s+=i;
    ……
    在这里编译器并不会认为这是一个语法错误,它只会认为在for循环里执行的是一个空语句,而事实上你的本意是想求1+2+3…+10。因此当你发现编译程序的时候没提示有语法错误,但运行结果不正确的时候,不要马上去找算法的麻烦,先看下有没有这类隐蔽的语法错误。说这个层次比较低级是因为当你熟练地掌握一门计算机语言的时候,这类错误会越来越少直至没有。另一个层次就是算法上的检查,这一层次比较高级,说它高级是因为算法在一个程序中是属于上层建筑,是一个程序的灵魂,一个程序是在算法的指导下写出来的。这一层面的错误多是由于人思维上的漏洞而造成的,因而这一层的错误是最难自己找出来。解决算法的错误的最好办法是把你算法交给另一个人去检查,别人通常能发现你自己无法找出来的漏洞,因此现在很多公司的测试小组和设计小组似乎两拨不同的人。但自己找漏洞有没有办法呢?应该说是有技巧的。总的来说就是关注关键变量值的变化,当这种变化和你预期的变化不同时,你就可以肯定问题就出在这一个变量上,再由这个变量入手查找算法上的错误。观察变量方法很多,最简单的办法就是在程序中需要检查的地方插上printf函数。
      关于调试程序每个人有每个人的心得,我感觉很大程度上积累经验是最重要的,这也是编程需要不断练习的一个原因之一��

    楼主 2016-02-25 11:50 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知