一个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://scpingwu.com/article/doogcoj.html