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

比如这样的程序
start=clock();
...
end=clock();
cost=end-start;
最后的结果cost是一个很大的值(150000ms)但是程序运行的时间远不到150s
clock()测的不是运行的时间吗

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

附linux下clock函数说明:

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-04-19

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);//输出结果。
}

第2个回答  2015-08-04
C语言是没有clock()库函数的,C++中也没有。
你是在哪里看到的程序?如果是C语言,很可能是你们自己设计的一个时钟。如果这样,你需要去查看这款时钟芯片的手册,或直接研读这个clock()函数,看输出的150000究竟是什么单位。
第3个回答  2015-08-04
运行出来是你电脑上本地时间、希望您能满意。

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

关于C语言程序设计的计时器
C语言中的头文件time.h中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,time.h还定义了符号:CLOCKS_PER_SEC,即一秒钟的时钟周期。这样就简单了,在头文件中加入#include,在程序main()主函数的开头定义long now=0;并给把clock()赋值给now,即now=clock()...

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;i<1000;i++) for (j=0;j<1000;j++) for (k=0;k<100;k++) {};wait_ms(2000);tick2=clock();dt...

C语言中clock的用法
clock()返回的是自程序启动以来经过的CPU时间,不是通常意义的时间。

怎样用c语言设计计算程序执行的时间?
C语言中的头文件time.h中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,time.h还定义了符号:CLOCKS_PER_SEC,即一秒钟的时钟周期。这样就简单了,在头文件中加入#include,在程序main()主函数的开头定义long now=0;并给把clock()赋值给now,即now=clock()...

请问C语言中clock()函数该怎么用?
clock()是C\/C++中的计时函数,而与其相关的数据类型是clock_t。它的具体功能是返回处理器调用某个进程或函数所花费的时间。函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中clock_t是用来保存时间的数据类型。在time.h文件中,我们可以找到对它...

c语言有办法取得当前纳秒或微秒级的时间吗
C语言中如何获取时间?精度如何?1 使用time_t time( time_t * timer ) 精确到秒 2 使用clock_t clock() 得到的是CPU时间精确到1\/CLOCKS_PER_SEC秒 3 计算时间差使用double difftime( time_t timer1, time_t timer0 )4 使用DWORD GetTickCount() 精确到毫秒 5 如果使用MFC的CTime类,可以...

c语言中的clock()问题
就是 while(clock()-now<CLOCKS_PER_SEC) ;的意思,注意后面还有个分号,这是一个空循环。因为clock会返回当前时间,now是一个过去的时刻,所以这个条件的意思是 当前时间比那个时刻晚的多少小于CLOCKS_PER_SEC,也就是如果时间相差还不到CLOCKS_PER_SEC就一直循环。因此这个循环的意思就是等待从now...

C语言汉诺塔问题如果移动十六个盘程序运行时间是多久用time函数?_百度...
可以使用C语言标准库中的time.h头文件中的clock()函数来获取程序运行时间。具体的方法如下:在程序开始运行时,调用clock()函数,获取当前系统时间,并将结果保存在一个变量中,如start_time。程序执行完毕后,再次调用clock()函数,获取当前系统时间,并将结果保存在另一个变量中,如end_time。计算程序...

C语言中time.h头文件中对时间的操作具体是怎样的?
time.h头文件提供对时间操作的一些函数,clock()是程序开始到调用的毫秒数。time_tt_begin,t_end;t_begin=clock();\/\/记录开始时间 dosomething();\/\/调用函数 t_end=clock();\/\/记录结束时间 printf("Timeused=%.21f\\n",(double)(t_end-t_begin)\/CLOCKS_PER_SEC);\/\/显示函数调用时间 ...

相似回答