C语言的clock()测出来的是什么时间

比如这样的程序start=clock();...end=clock();cost=end-start;最后的结果cost是一个很大的值(150000ms)但是程序运行的时... 比如这样的程序
start=clock();
...
end=clock();
cost=end-start;
最后的结果cost是一个很大的值(150000ms)但是程序运行的时间远不到150s
clock()测的不是运行的时间吗
展开
 我来答
拥云庄主
2015-08-04 · TA获得超过2505个赞
知道小有建树答主
回答量:672
采纳率:100%
帮助的人:426万
展开全部

clock函数返回的是cpu时间,并不是秒数,真正的一秒钟可能包含若干个CPU时间,这个值通常是由宏CLOCKS_PER_SEC来定义,表示一秒中有CLOCKS_PER_SEC这么多个cpu时间,不同的编译器可能不同,比如,linux C中,它是1000000,在VC6中,它是1000,你用cost除以CLOCKS_PER_SEC即可得到实际的秒数。

附linux下clock函数说明:

在单独的窗口中打开图片可以看得更清楚一些,注意红线部分说明:要计算秒数,除以CLOCKS_PER_SEC

风若远去何人留
2017-04-19 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450131
专业C/C++软件开发

向TA提问 私信TA
展开全部

clock函数测出来的时间为进程运行时间,单位为滴答数(ticks)。

一、clock函数声明在time.h中,声明形式为:

clock_t clock(void) ;

其中clock_t为标准库中的自定义类型,一般为long型。

typedef long clock_t;

二、函数功能为返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。

三、返回的tick数,要转换为常用的时间单位,可以除以CLOCKS_PER_SEC,这个是一个宏,同样定义在time.h中。 

以下代码可以打印程序运行的时间:

#include <stdio.h>
#include <time.h>
void show_run_time(void)
{
    clock_t t;
    int s, ms;
    t=clock();//获取tick数。
    s=t/CLOCKS_PER_SEC;//计算秒。
    ms=t%CLOCKS_PER_SEC*1000/CLOCKS_PER_SEC;//计算毫秒值。
    printf("程序已经运行%d.%03d秒\n", s, ms);//输出结果。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NC_PDF
2015-08-04 · TA获得超过351个赞
知道小有建树答主
回答量:273
采纳率:0%
帮助的人:216万
展开全部
C语言是没有clock()库函数的,C++中也没有。
你是在哪里看到的程序?如果是C语言,很可能是你们自己设计的一个时钟。如果这样,你需要去查看这款时钟芯片的手册,或直接研读这个clock()函数,看输出的150000究竟是什么单位。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-08-04
展开全部
运行出来是你电脑上本地时间、希望您能满意。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式