#include <conio.h>
#include <stdio.h>
#include<time.h>
double multi();
void main()
{
clrscr();
clock_t start = clock();
for (int i = 0; i < 1000; i++)
{
multi();
//printf("Answer (%d)",s);
}
clock_t end = clock();
float diff;
diff = (float) (end - start) / CLOCKS_PER_SEC;
printf("time execution :%f", diff);
getch();
}
double multi()
{
double a;
a = 5 * 5;
return a;
}
执行时间显示为0.000000问题!
是纳米结构的原因
答案 0 :(得分:0)
clock()
函数的人说:
clock()函数返回程序使用的处理器时间的近似。
近似,所以它不是精确的,它取决于系统的粒度。因此,对于初学者,您可以使用以下内容检查系统clock()
的粒度:
clock_t start =clock(), end;
while(1)
{
if(start != (end=clock()))
break;
}
diff=(float)(end - start)/CLOCKS_PER_SEC;
printf("best time :%f",diff);
为我这样做,我得到0.001(这是1毫秒),所以任何花费少于1毫秒的东西我都会回来“0”。这就是你发生的事情,你的代码运行速度比clock()
的粒度快,所以你得到了最好的近似值,恰好是“0”