一个C语言中time函数的问题,我编写了一个小程序clock的程序,但返回值都是0,为什么
#include<stdio.h>#include<time.h>voidmain(){inti;clock_tend;printf("计时开始。。。\n");for(i...
#include<stdio.h>
#include<time.h>
void main()
{
int i;
clock_t end;
printf("计时开始。。。\n");
for(i=100000;i>11;i--)
{
;
}
end=clock()/CLOCKS_PER_SEC;
printf("%ld\n",end);
}
当我把最后end=clock()/CLOCKS_PER_SEC;中的end换成i也是这样,还有clock_t end;有什么用啊! 展开
#include<time.h>
void main()
{
int i;
clock_t end;
printf("计时开始。。。\n");
for(i=100000;i>11;i--)
{
;
}
end=clock()/CLOCKS_PER_SEC;
printf("%ld\n",end);
}
当我把最后end=clock()/CLOCKS_PER_SEC;中的end换成i也是这样,还有clock_t end;有什么用啊! 展开
展开全部
几个可能性
编译器优化,for循环实际根本没执行,直接跳过去了,所以时间为0
clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少,那么clock算出的时间也很少
建议使用time gettimeofday函数来计时
追问
编译器优化是怎么一回事
追答
程序编译优化,像你这个程序,for循环这一部分 可以直接优化成 i=11,不需要重复递减i,跳过循环直接得到结果
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序跑得太快,不足1秒。
int i,j,x=0;
clock_t end;
printf("start\n");
for(i=100000;i>11;i--)for (j=0;j<1000;j++) {x++; x = x%1000; }
end=clock()/CLOCKS_PER_SEC;
printf("%ld\n",end);
这就可以了。
int i,j,x=0;
clock_t end;
printf("start\n");
for(i=100000;i>11;i--)for (j=0;j<1000;j++) {x++; x = x%1000; }
end=clock()/CLOCKS_PER_SEC;
printf("%ld\n",end);
这就可以了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没看懂你这个程序是干吗的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询