C51编程:很怪的问题
请看一下程序:
uchar readbuff[21];
uchar ReadChr(uchar byteaddr,uchar len) //从字节地址读取指定长度的字符
{
uchar x;
MoveTo(byteaddr*8);
for(x=0;x<len; x++)
{
readbuff[x]=ReadB();
}
return 0;
}
在该函数中,开始自加值x开始时我选用的是程序当中的一个全局变量(uint I;),如下:
uchar readbuff[21];
uchar ReadChr(uchar byteaddr,uchar len) //从字节地址读取指定长度的字符
{
MoveTo(byteaddr*8);
for(i=0;i<len; i++)
{
readbuff[i]=ReadB();
}
return 0;
}
程序运行后发现,仅执行了一次循环,且一下子就到了readbuff[8],给人的感觉是运行了
readbuff[8]=ReadB();而已。开始我怀疑是变量类型冲突,因为我的len 为 uchar,而I为
uint ;将len该成uint 后却仍然不行。后来就改成现在这样了,没有问题,但我不明白真正
的原因,有劳各位高手了!
发表时间:2001年12月27日10:35:00