C++中clock()与time()

本文对比了C++中clock()和time()两种计时函数的使用与差异,clock()返回的是程序运行时间,单位为毫秒,而time()返回的是从1970年至今的总秒数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在C++中,可以通过clock()或者time()实现计时功能,那么二者有什么差别呢?先通过简单的代码验证一下

#include <iostream>
#include <ctime>   //time()
#include <thread>   //this_thread

int main()
{
    //clock()计算时间并打印
    clock_t time0 = clock();
    std::cout << "****************第一次打印clock()*****************" << std::endl;
    std::cout << time0 << "\n\n";

    //time()计算时间并打印
    int64_t now = (int64_t)time(nullptr);
    std::cout << "*****************第一次打印time()****************" << std::endl;
    std::cout << now << "\n\n";

    //将time()得到的时间格式化输出
    tm ts;
    localtime_s(&ts, &now);
    char szNow[64];
    strftime(szNow, sizeof(szNow), "%Y%m%d%H%M%S", &ts);
    std::cout << "格式化时间输出:" << szNow << std::endl;

    //睡眠10000毫秒,也就是10秒
    std::cout << "sleep_for 睡眠10000ms" << "\n\n";
    std::this_thread::sleep_for(std::chrono::milliseconds(10000));

    //再次计算clock()并打印
    clock_t time1 = clock();
    std::cout << "******************第二次打印clock()***************" << std::endl;
    std::cout << time1 << "\n\n";

    //再次计算time()并打印
    int64_t now1 = (int64_t)time(nullptr);
    std::cout << "*****************第二次打印time()****************" << std::endl;
    std::cout << now1 << "\n\n";

    //格式化时间输出
    localtime_s(&ts, &now1);
    strftime(szNow, sizeof(szNow), "%Y%m%d%H%M%S", &ts);
    std::cout << "格式化时间输出:" << szNow << std::endl;
    
    return 0;
}

在代码中,分别调用clock()与time(),接下来看下输出结果:

****************第一次打印clock()*****************
63

*****************第一次打印time()****************
1576070589

格式化时间输出:20191211212309
sleep_for 睡眠10000ms

******************第二次打印clock()***************
10071

*****************第二次打印time()****************
1576070599

格式化时间输出:20191211212319

两个函数首先是单位不同,clock()返回的时间单位是毫秒(ms), time()返回的时间单位是秒(s),其次,二者的计算方法不同,time()是从1970到现在总秒数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值