一个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;有什么用啊!
展开
 我来答
wangming1882
2013-08-22
知道答主
回答量:17
采纳率:0%
帮助的人:11.2万
展开全部
肯定是0 clock_t的定义是typedef long clock_t也就是长整形了,CLOCKS_PER_SEC这个值是1000,你自己的代码走出来的值不到1000所以结果为0;
你可以直接定义一个long t = clock();printf("%ld",t);看下clock()这个函数执行结果就知道!很简单哦!
百度网友bdad0e7
推荐于2018-04-20 · 超过26用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:56.7万
展开全部

几个可能性

  1. 编译器优化,for循环实际根本没执行,直接跳过去了,所以时间为0

  2. clock计算的是程序占用cpu的时间,如果你的程序执行的动作很少,那么clock算出的时间也很少

建议使用time gettimeofday函数来计时

追问
编译器优化是怎么一回事
追答
程序编译优化,像你这个程序,for循环这一部分 可以直接优化成 i=11,不需要重复递减i,跳过循环直接得到结果
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2013-08-20 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5598万
展开全部
程序跑得太快,不足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);
这就可以了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luoguolong2660
2013-08-20 · TA获得超过157个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:228万
展开全部
没看懂你这个程序是干吗的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式