这个C++延时函数怎样理解

2020-02-02 09:39发布

下面这个延时函数怎么看呢?求解
void delay()
{
long int bl1;
int bl2;
for(bl1=655356;bl1>0;bl1--)
        {
        for(bl2=410;bl2>0;bl2--);
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
41条回答
takashiki
2020-02-03 23:14
renwocai 发表于 2012-9-11 09:53
外层循环一共循环了655356次,每次用了3336个时钟周期,一共是2,186,267,616个时钟周期

你真的仿真过了?看我贴的反汇编代码。
这是51单片机区,你不会连这个都不知道吧。话说,你不会用stm32进行仿真的吧?
int bl2;
bl2是int类型好不好,int类型是两个字节的,一个周期绝对没法对int类型进行自减的!
bl1是long类型,4个字节,自减都在调用库函数,你认为一个时钟周期就能完成?

你再仿真试试,用AT89S52,12MHz振荡器,看看是不是需要半个小时?

一周热门 更多>