我正在调试低级程序,因此必须确保数组exp
具有我希望它具有的所有值。所以我写了一个代码片段,打印出我的数组以帮助调试它。问题是标准库不可用,所以我需要使用自己的代码。
我的代码段:
int test=0;char val[5]={};
int l=0;
for(int k=0;exp[k]!=0;k++)
{
test=exp[k]; //taking in value
int_to_ascii(test, val);
print_char(val,2*l,0xd);
for(int m=0;val[m]!='\0';m++)//clearing out val for next iteration
val[m]='\0';
l=k*0xA0; //next line
}
exp
是一个整数数组。
int_to_ascii的代码:
if(src==0)
{
stack[i++]='\0'; //pushing NULL and 0 to stack
stack[i++]='0';
}
else
{
while(src!=0) //converting last digit and pushing to stack
{
stack[i]=(0x30+src%10);
src/=10;
i++;
}
}
i--;
len=i;
while(i>=0)
{
dest[len-i]=stack[i]; //popping and placing from left to right
i--; //inorder not to get reversed.
}
print_char
之所以有效,是因为我用它来打印整个窗口和界面。基本上需要
char* szarray,int offset,int color
。
我在计算机上大喊近2个小时,因为我认为我的阵列不正确,但不应该如此,但实际的问题出在此调试代码中。它不会显示exp[0]
。
何时输出:
20480
20530
5
它只是打印
20530
5
我什至尝试将值强制蛮进exp [0]。如果我在其中输入除20480以外的任何值,它将在第一项中打印无效字符,如下所示:
20530P\. ;not exact value, demonstration purpose only
5
我认为int_to_ascii出现了问题,但这在其他部分也得到了广泛使用而没有任何问题。
有人知道吗?