C++:clock函数 vs time函数

绪:
clock()是C/C++中的计时函数 , 返回数据类型为clock_t;
time()可获适当前系统运行时候 , 也是计时函数 , 返回类型是time_t;
本文本家儿要介绍clock()和time()的界说;用法;和示例;

C++:clock函数 vs time函数

文章插图
方式/
1clock()计时函数:
①头文件:
C++头文件ctime , time.h中的库函数clock() , 供给了测试函数运行时候的方式:
②clock()返回类型为clock_t类型;
③clock_t类型:clock_t现实为long 类型 , long clock_t;
④常量CLOCKS_PER_SEC , 暗示每一秒(per second)有几多个时钟计时单位;
即每过千分之一秒(1毫秒) , 挪用clock函数返回的值就加1;

C++:clock函数 vs time函数

文章插图

2clock()函数功能:
返回从开启这个法式历程到挪用clock函数之间的CPU时钟计时单位数即挂钟时候 ,
单元是毫秒;
【注】:
法式中 , 若是写当作(double)((finish - start) / CLOCKS_PER_SEC)这种形式 ,
一般环境下这个值会为0.0000 , 错误;
因为:finish , start , CLOCKS_PER_SEC均为long型变(常)量 , 若finish-start < 1000 , 则
(finish - start) / CLOCKS_PER_SEC = 0,再将其强制转换为double型数据 , 获得0.0000 。
而若是写当作(double)(finish - start) / CLOCKS_PER_SEC , 先会将finish - start转换当作double型数据 , 然后执行"/"操作 , 则编译器主动将CLOCKS_PER_SEC晋升为double型 , 故而是两
个double数据相除能获得准确成果 。

C++:clock函数 vs time函数

文章插图

3clock()函数应用:
clock函数来计较你的机械运行一个轮回或者处置其它事务到底花了几多时候:
【C++:clock函数 vs time函数】#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
       long i = 10000000L;
       clock_t start, finish;
       double duration;
       /* 测量一个事务持续的时候*/
       printf( "Time to do %ld empty loops is ", i) ;
       start = clock();
       while( i-- );
       finish = clock();
       duration = (double)(finish - start) / CLOCKS_PER_SEC;
       printf( "%f seconds\n", duration );
       system("pause");
}

C++:clock函数 vs time函数

文章插图

4time计时函数:
①头文件为time.h
②函数原型:time_t time(time_t * timer)
③功能: 获取当前的系统时候 , 返回的成果是一个time_t类型;
其实就是一个年夜整数 , 其值暗示从CUT(Coordinated Universal Time)时候1970年1月1日00:00:00(称为UNIX系统的Epoch时候)到当前时刻的秒数 。
然后挪用localtime将time_t所暗示的CUT时候转换为当地时候(我们是+8区 , 比UTC多8个小时)并转当作struct 类型 , 该类型的各数据当作员别离暗示年代日时分秒 。

推荐阅读