请问:下面的循环" for(i=400;i>0;i--) "改成"for(i=20;i>0;i--) for(j=20;j>20;j--)",时间增加一倍,为何?
题目
请问:下面的循环" for(i=400;i>0;i--) "改成"for(i=20;i>0;i--) for(j=20;j>20;j--)",时间增加一倍,为何?
我的单片机是STC89C52RC,11.0592M的.
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,k; //定义3个无符号字符型数据.改for语言后多定义个j;
for(i=400;i>0;i--) //作循环延时
for(k=248;k>0;k--);
}
答案
你的标题的问题没在你内容里体现.你应该把问题描述的更清楚一点.
for(i=400;i>0;i--) "改成"for(i=20;i>0;i--) for(j=20;j>20;j--) 你确认是 j>20?
关于将循环写成两个,时间增加,这是肯定的.
因为循环除了循环语句,其循环本身也是需要cpu时间的.在循环体简单的情况下,这种时间会更加明显.
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点