时间执行可以显示出来

时间:2013-03-07 19:43:09

标签: c

#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问题!

是纳米结构的原因

1 个答案:

答案 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”