在调试程序时,输出调试信息是一种普遍、有效的方法。输出调试信息一般有以下五种方法:
方法一:直接使用屏幕打印函数printf。
该方法直接在需要输出调试信息的位置使用函数printf输出相应的调试信息,以及某些关键变量的值。我们通过以下求阶层的函数fact来看看该方法的调试程序过程。#include int fact(int n){int i,f=1;for( i=1; i<=n; i++){f += i;}return f;}int main(){printf( "4!=%d/n", fact(4) );return 0;}程序1: 有bug的求阶层函数
程序1编译运行的结果如下:4!=11
结果错误。为了找到结果错误的原因,我们在语句"f += i;"之后插入函数printf输出调试信息,如程序2。#include int fact(int n){int i,f=1;for( i=1; i<=n; i++){f += i;printf("i=%d ; f=%d/n", i, f);}return f;}int main(){printf( "4!=%d/n", fact(4) );return 0;}程序2: 加入函数printf输出调试信息的求阶层函数
再编译运行该程序,屏幕输出如下:i=1 ; f=2 i=2 ; f=4 i=3 ; f=7 i=4 ; f=11 4!=11
原来语句"f += i"错了,应该为"f *=i"。修改过来(见程序3),再编译运行,结果如下:i=1 ; f=1 i=2 ; f=2 i=3 ; f=6 i=4 ; f=24 4!=24#include
int fact(int n)
{
int i,f=1;
for( i=1; i<=n; i++)
{
f *= i;
printf("i=%d ; f=%d/n", i, f);
}
return f;
}
int main()
{
printf( "4!=%d/n", fact(4) );
return 0;
}
程序3: