C语言调试技巧

有哪位C语言高手能够教教小弟一点C语言的调试技巧。
小弟初学,但写个3--40行的程序往往要调试很久才能调出来,要不就调试不出来。很是苦恼

希望能教教我一些 最基本 最实用 的调试技巧...
谢谢了
回答的好我会追加分的 谢谢了..

小可根据亲身经历认为,要减少调试时间,首先是要使程序写出来后语法错误少。要做到这些必须形成良好的习惯,一律做到按标准语法格式书写程序,提高程序的通用性来适应不同的编译器。比如用int main()而不是void main();用标准函数system("cls")而不是老式函数clrscr();多用system("pause")而不是getch();在写程序时时刻保持语句的匹配,比如写主函数main()后写了左花括号"{"马上补上右花括号"}",然后再在花括号中添加语句而不是相反,以免最后遗忘了右花括号"}",同理for()语句,while()语句,fopen()语句等的小括号也是如此,先写好左右小括号()再在里面加成分。养成每个语句的结尾都要加上分号;的习惯。再一个重要方面是数据的类型一定要对应,scanf()和printf()函数中变量的输入输出格式要和变量的定义类型一致,函数调用中的形参和实参类型要一一对应,要整型对整型,指针对指针,指针数组对指针数组。等等。
如果养成了好的习惯,写出来的程序语法错误会减少一大半。

再就是程序的设计思路要正确清晰,要不然即使程序没有语法错误,但结果不是需要的。这种情况往往需要很长时间才能找到问题所在。我就有几次这样的经历,程序编译可以通过,说明没有语法错误,但是结果却不对。总结的方法是在程序中适当的地方用输出语句比如printf()把一些变量此刻的值显示出来和理论上的值对照,判断正误。这样就可以不断缩小错误范围,问题会较快解决。小可认为在编写一个程序以前应先认真构思一番找出一种简洁有效的编程算法,然后动手再写,这是避免此类错误的一个好办法。
上面谈了如何从源头上减少错误。具体如何调试排错,下面有详尽介绍(13页之多),小可就不啰嗦了。
http://www.huarw.com/program/C/c02/200511/4882.html
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-08
半年前写过一篇 <VC程序调试技巧>
应该对初学者很有帮助,你可以去看下
那里有图片,这里发不上去

http://tieba.baidu.com/f?kz=416236211

1 VC程序调试技巧
这篇文章是写给一些初学者看的,希望初学者的程序在出现一些小错
误(指运行时的错误)不用再找别人帮忙,可以自己搞定.这里以VC6.0为例,如果你对VC6.0感到厌烦的话,本人不负责.还有,这篇文件是写给初学者看的,里面可以一些写得很废话,但是我觉得这样初学者才可以看懂,如果你是高手,请直接跳过,o(∩_∩)o...

作者:CIW_BLUE 封 2008-6-22 21:46 回复此发言

--------------------------------------------------------------------------------

2 回复:VC程序调试技巧
1.在VC6.0怎么调试程序呢?
首先,把程序(工程)打开,然后在需要调试的地方点击右键,弹出了一个菜单,选择 <Insert/Remove BreakPoint> .这样,就可以下断点(也就是说

等一下调试程序的时候,程序到这里就会停)了. 如果你已经在那边下过断点的话,这时候,这个选项就变成<Remove BreakPoint>, 再点就是删除

断点了.

作者:CIW_BLUE 封 2008-6-22 21:50 回复此发言 删除
第2个回答  2019-10-17
lz很粗心哦
if语句的括号全掉了
帮你改过来了
如果我的回答让你满意
记得点满意答案哦
#include<stdio.h>
void
fun(int
x)
{
if
(x>100
||
x<0)
printf("无效成绩");
else
if
(x>=90)
printf("优");
else
if
(x>=80)
printf("良");
else
if
(x>=70)
printf("中");
else
if
(x>=60)
printf("及格");
else
printf("不及格");
}
void
main()
{
int
a;
printf("请输入学生成绩:");
scanf("%d",&a);
fun(a);
}
第3个回答  2009-02-08
F9碰上循环的话会很麻烦很痛苦~~
我有一个通用的调试方法,就是在程序不同行中添加cout<<"Course n"<<endl;
在C里面应该写成printf("Course n\n"); 吧,适当运用PauseBreak中断,这样就可以让程序在你的可见范围内运行了.
还是那句话,百练百练,百题不厌~~~
推荐两个Website吧:
http://poj.grids.cn/
http://acm.pku.edu.cn/JudgeOnline/
祝你在编程路上有所成就!
第4个回答  2009-02-09
我初学C的时候,调试就用眼睛看的,没有用debug,也没觉得有多难。

后来程序大了,用了debug,确实容易,但是对于初学者的程序来说,用眼睛看比什么都快。

个人经验
相似回答