程序可以通過與它們的等同替換的東西轉化選定的代碼。例如,
main()
{
int x=5;
count(x);
}
- >
main()
{
count(5);
}
- >
main()
{
if(5>0)
{
count(4);
printf("%d ",4);
}
}
- >
main()
{
count(4);
printf("%d ",4);
}
- >
main()
{
if(4>0)
{
count(3);
printf("%d ",3);
}
printf("%d ",4);
}
- >
main()
{
count(3);
printf("%d ",3);
printf("%d ",4);
}
- > - >
main()
{
count(0);
printf("%d ",0);
printf("%d ",1);
printf("%d ",2);
printf("%d ",3);
printf("%d ",4);
}
- >
main()
{
if(0>0)
{
count(-1);
printf("%d ",-1);
}
printf("%d ",0);
printf("%d ",1);
printf("%d ",2);
printf("%d ",3);
printf("%d ",4);
}
- >
main()
{
printf("%d ",0);
printf("%d ",1);
printf("%d ",2);
printf("%d ",3);
printf("%d ",4);
}
嘗試使用調試器(在Linux上意味着'gdb'後用'gcc -Wall -g'編譯),一步一步地運行程序或者至少在'count'中使用一個斷點。 – 2012-08-02 09:15:55
你問你程序是如何執行的?一步步?? – 2012-08-02 09:21:02
@chris程序不使用'void main';它使用假設返回'int',它是預ISO(K&R)C。 – ecatmur 2012-08-02 09:22:21