这个是和你机器的运算速度有关的
成都网站建设哪家好,找创新互联!专注于网页设计、成都网站建设、微信开发、微信小程序开发、集团成都定制网站等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:混凝土泵车等众多领域,积累了大量丰富的经验,同时也获得了客户的一致表扬!
你要计算出这个函数用了多少时间就要用时间函数,我很久没用了。
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;i121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
//time_t是在头文件中定义的,可能是个结构体类型里面的成员定义了一些时间的单位,如年、月、日。在这里调用这个结构体定义2个变量;
//start=time(null);
将其中一个变量赋值。它的值等于当前的系统时间
//end=time(null);
在程序结束的时候再给另一个变量赋值,值等于当前的系统时间。
//difftime(end,start)
函数difftime();是double类型,用来计算运行的时间,用第一个参数的时间减去第二个参数的时间,得到的值就是运行用了多少时间。单位为秒
这个跟的系统频率有关系。看看你的晶振是多少。另外还跟指令集有关系。
精确的时间你可以反汇编一下看看有多少条指令,根据指令周期算算延时时间。
C语言delay函数延时计算源代码如下:
#include "stdlib.h"
void delay()
{
time_t start,end;
start=time(null);
unchar i;
while(z--)
{
for(i=0;ilt;121;i++);
}
end=time(null);
printf("%f",difftime(end,start));
}
扩展资料
1、对于要求精确延时时间更长,这时就要采用循环嵌套的方法来实现,因此,循环嵌套的方法常用于达到ms级的延时。
对于循环语句同样可以采用for,do…while,while结构来完成,每个循环体内的变量仍然采用无符号字符变量。
一个nop为1个指令周期,通过nop指令可以产生一定的延迟,但是对于快速的CPU来说效果不明显,因此可以多写几个,便可以多延迟几个时钟(具体应该说是一个指令占用了3个时钟脉冲);所以,一个for循环会执行4*250个指令周期,那么总共延时4*250*ms个指令周期~~
delay取值足够大就行了,不过不推荐用空循环做延时,有两个明显缺点:1,精度太差;2,CPU占用太高
用Sleep()函数方便多了:
#includestdio.h
#include windows.h
int main()
{
char* str="Windows";
int i=0;
for(i=0;*(str+i);i++)
{
printf("%c",*(str+i));
Sleep(500); //500毫秒
}
return 0;
}
下面是delay 函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而达到延迟目的。数原型:
原型:
void Delay(unsigned int nDelay)
{
unsigned int i,j,k;
for ( i=0;inDelay;i++ )
for ( j=0;j6144;j++ )
k++;
}
用法:#include system.h
功能:短暂延时
说明:延时msec*4毫秒所以,delay的延迟时间是和你的cpu时钟周期相关的。