c语言计时函数总是返回0 c语言函数返回0是什么意思

一个C语言中time函数的问题,我编写了一个小程序clock的程序,但返回值都是0,为什么

肯定是0 clock_t的定义是typedef long clock_t也就是长整形了,CLOCKS_PER_SEC这个值是1000,你自己的代码走出来的值不到1000所以结果为0;

成都创新互联公司是一家专业的成都网站建设公司,我们专注成都网站建设、成都做网站、网络营销、企业网站建设,买友情链接广告投放为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。

你可以直接定义一个long t = clock();printf("%ld",t);看下clock()这个函数执行结果就知道!很简单哦!

c语言计时函数,clock.总是返回0.求助

程序运行时间很短时,返回0是很正常的。

可以试着运行以下程序:

#includestdio.h

#includetime.h

main()

{for(int i=1;i0;i++);

printf("%d",clock());

}

C语言 计时函数时间差总为零

C语言中变量是有作用域的,除非定义了全局变量,一般而言不同的函数体中的变量相互不可见。

因此,主函数中的t_start与leave_car()函数中的t_start并不是同一个变量!

修改如下:

将主函数中的

time_t t_start,t_end;

t_start=time(NULL);

两个语句去掉,因为对整个程序而言没有实际的作用。

在leave_car()中

printf("yes");

前添加

t_start=time(NULL);

另外

printf("time is %f s\n",difftime(t_end,t_start);

少写了一个反括号

C语言计算结果总是0

clock() 获取毫秒。程序执行太快,时间差为0

这是用clock() 的例子:

void example_dt_ms()

{

clock_t tick1,tick2;

int i,j,k;

double dt;

tick1=clock(); //ms

//for (i=0;i1000;i++) for (j=0;j1000;j++) for (k=0;k100;k++) {};

wait_ms(2000);

tick2=clock();

dt = (double) (tick2 - tick1);

printf("==============\nexample_dt_ms:\n");

printf("dt = %lf ms\n",dt);

}

精确计时间差:

用QueryPerformanceCounter()函数返回当时时钟读数,计时开始用它得到开始读数,计时结束用它得到结束读数,两个数相减是时间差读数。读数转换为时间,要用QueryPerformanceFrequency()函数获得时钟频率,读数除以时钟频率,得时间,单位是秒。乘1000得毫秒。据说,这种方法比较精确。


分享文章:c语言计时函数总是返回0 c语言函数返回0是什么意思
本文地址:http://ybzwz.com/article/doogcoj.html