for(i=0;i<8;i++)与for(i=1;i<9;i++)同样是循环8次,这两个句语有区别??
- C/C++ code
/*单片机编程用到ds1302这块芯片。。其中有一个函数是这样的。*/void ds1302_writeByte(uchar dat) //实时时钟写入一字节(内部函数){ uchar i; ACC = dat; for(i = 1; i < 9; i++) //相当于汇编中的 RRC /*奇怪的是:这两个语句都是循环8次嘛,应该没区别才对啊。为什么我换了 */for(i = 0; i < 8; i++)这一句,,程序就有问题了。。 *很烦,这个问题困扰了我很久,想不到是这两个句语造成的。。。。 */ //for(i = 0; i < 8; i++) { ds1302_sclk = 0; ds1302_io = ACC0; //写,上升沿之前数据必须有效,写入数据 ds1302_sclk = 1; ACC >>= 1; } }[解决办法]
难道是在嵌入式编程中有区别?。。。
试试 for(i=-1;i<7;i++) 看看。。。
maybe i 不能为0?
[解决办法]
按照你的写法,第一个for语句事实上只执行了一次,因为在第二个for执行完一次之后i已经是8了,8++之后为9,已经不满足i<9这个条件。所以不会再循环。虽然不知道你为什么要在两个for里用同一个i,但是如果是为了执行64次(猜测),为什么不在第二个for里面用另外的变量呢?
[解决办法]
[解决办法]
LZ是要循环嵌套吗?我怎么觉得像是比较for(i=0;i<8;i++)和for(i=1;i<9;i++)两个循环的异同诶!!!!
[解决办法]
楼主贴的代码和问的问题不明确