当前位置:网站首页 > 创业 > 正文

C++:clock函数 vs time函数

0 张子豪 张子豪 2025-10-12 07:50 1

绪:

clock()是C/C++中的计时函数,返回数据类型为clock_t;

time()可获适当前系统运行时候,也是计时函数,返回类型是time_t;

本文本家儿要介绍clock()和time()的界说;用法;和示例;

方式/步调

  1. 1

    clock()计时函数:

    ①头文件:

    C++头文件ctime,time.h中的库函数clock(),供给了测试函数运行时候的方式:

    ②clock()返回类型为clock_t类型;

    ③clock_t类型:clock_t现实为long 类型,long clock_t;

    ④常量CLOCKS_PER_SEC,暗示每一秒(per second)有几多个时钟计时单位;

    即每过千分之一秒(1毫秒),挪用clock()函数返回的值就加1;

  2. 2

    clock()函数功能:

    返回从开启这个法式历程到挪用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数据相除能获得准确成果。

  3. 3

    clock()函数应用:

    clock函数来计较你的机械运行一个轮回或者处置其它事务到底花了几多时候:

    #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");

    }

  4. 4

    time计时函数:

    ①头文件为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 类型,该类型的各数据当作员别离暗示年代日时分秒。

  5. 5

    time_t数据类型:

    time函数的原型也可以理解为 long time(long *tloc),即返回一个long型整数。

    因为在time.h这个头文件中time_t现实上就是long。

    【注】:

    ①因为time_t类型编码不克不及确定,所以尽量不要用t1-t2体例计较两个time_t之间的时候距离,而应该用double difftime( time_t time_end, time_t time_beg )函数计较时候距离。

    ②time_t暗示计较机ji yuan时候,struct 暗示尺度日历时候。

  6. 6

    time函数应用:

    计时示例:

    time_t start, end;

    start = time(NULL);

    _sleep(1000);

    end = time(NULL);

    printf("duration: %lf\n", difftime(end, start));

     

    //time()函数连系其他函数

    //获适当前系统时候或是尺度时候。

    #include <stdio.h>

    #include <time.h>

    int main()

    {

           time_t timer;//time_t就是long int 类型

           ....

           timer = time(NULL);//这一句也可以改当作time(&timer);

           tblock = localtime(&timer);

           printf("Local time is: %s\n",asctime(tblock));

           getchar();

           return 0;

    }

注重事项

  • clock()返回类型为clock_t类型;clock_t现实为long 类型
  • time获取当前的系统时候,返回的成果是一个time_t类型

来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!


本文链接:https://www.ibaiwen.com/web/239062.html

张子豪

张子豪

TA很懒,啥都没写...

@百闻娱乐 本站部分内容转自互联网,若有侵权等问题请及时与本站联系,我们将在第一时间删除处理。 | 粤ICP备2024343649号 | (地图