C语言中的时间函数clock()和time()你都了解吗
admin
2023-08-15 22:15:27
0

目录

  • clock函数
  • time函数
  • 总结
时间函数在编写代码的时候会经常用到,下面就来总结一下clock和time函数的用法,函数原型如下:
clock_t __cdecl clock(void); __CRT_INLINE time_t __cdecl time(time_t *_Time);


clock函数 clock函数返回程序从运行开始到当前调用函数位置处CPU所使用的时间,通过这个函数就可以计算某段代码运行时所使用的时间。
下面通过一段简单的代码测试一下:
#include #include #include int main(int argc, char** argv){ clock_t start_t, end_t; start_t = clock(); sleep(1); end_t = clock(); printf("%d %d",start_t,end_t); return 0; }

刚进入程序时通过clock函数读取当前CPU所使用的时间,然后使用sleep函数延时1秒,接着在使用clock函数读取当前CPU所使用的时间,这样这两个时间差应该就是1秒。程序运行结果如下:
C语言中的时间函数clock()和time()你都了解吗
文章图片

通过打印的结果可以看出,第一次读取的CPU时间是0,第二次读取的CPU时间是1000,在程序中延时了1秒,说明clock函数返回的时间单位是毫秒(ms)。
如果要将程序运行的时间换算为以秒为单位的话,这里就需要计算两次运行的时间差,然后除以每秒钟系统的计数次数。系统中每秒钟的计数次数用一个宏定义的值来表示。
#define CLOCKS_PER_SEC 1000

这个CLOCKS_PER_SEC的值为1000,说明CPU1秒钟计数1000次,也就是1ms计数一次,这个和上面分析的结果是一样的。
修改程序,将时间换算为秒,继续测试。
C语言中的时间函数clock()和time()你都了解吗
文章图片

通过结果可以看出这个循环耗时32ms,也就是0.032s。

time函数 time函数返回的是从 1970-01-01 00:00:00 开始到现在所经过的秒数。
下面通过一个简单的代码演示一下time函数的用法。
#include #include #include int main(int argc, char** argv){ time_t seconds; seconds = time(NULL); printf("自1970-01-01 起的秒数:%d s",seconds); return 0; }

time函数返回值是一个time_t的类型,它的本质其实也是一个整形数据。
C语言中的时间函数clock()和time()你都了解吗
文章图片

函数返回的是一个整形的秒数,将返回值打印出来,结果如下:
C语言中的时间函数clock()和time()你都了解吗
文章图片

将这个秒数通过时间戳在线转换网站转换为年月日,转换网址为: https://tool.lu/timestamp/ 转换结果如下:
C语言中的时间函数clock()和time()你都了解吗
文章图片

转换后的时间和程序运行时的时间是一样的,说明time函数返回的时间是准确的,这样在程序运行过程中想要获取准确的时间时,就可以通过time函数来获取系统的准确时间。

总结 【C语言中的时间函数clock()和time()你都了解吗】本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关内容

热门资讯

a... 本文目录导航: abaqus振动照应剖析中处罚力的加载方法 abaqus反...
a... 本文目录导航: abaqus资料可以不设置参数吗 abaqus外面没有自带...
A... 本文目录导航: ANSYS Workbench中二维平面剖析的设置。 an...
h... 本文目录导航: hfss19.2允许win11吗 微带如何假负载 ...
a... 本文目录导航: ansys模流剖析用哪个模块 Ansys_workbenc...
v... 本文目录导航: 在ansys中,建好几何模型后,随意变动一下视图,旋转、加大、增加,Fit...
A... 本文目录导航: Ansys软件可以收费试用吗? ansys有哪些软件 ...
a... 本文目录导航: abaqus中如何同时关上两个cae文件? abaqus找...
a... 本文目录导航: ansys流体剖析迭代次数可以中止嘛 Ansys Flot...
这... 本文目录导航: 哪位大佬有 Fluent14.5流场剖析从入门到知晓,这种百度网盘资源的链...
经... 双击D2进入System Coupling的设置,在Solution上右击选用Clear Gener...
a... 本文目录导航: ansys软件引见 ansys有哪些软件 ...
a... 本文目录导航: abaqus系列技巧18:聊聊abaqus云图外面的魔术加大镜--缩放倍数...
a... 本文目录导航: abaqus中网格不可绘制 abaqus结果可视化某个部件...
a... 本文目录导航: abaqus结果可视化某个部件云图只显示网格接壤处的? a...
驳... 本文目录导航: ABAQUS中假设选择施加的载荷类型为pressure,对应的载荷单位应该...
a... 本文目录导航: abaqus2020旋转不了物体 怎样判别abaqus转的...
在... 本文目录导航: 在abaqus中如何删除一个单元 ABAQUS怎样删除网格...
它... 本文目录导航: abaqus为什么叫abaqus,它是那些词的简称么?全称是什么呢? ...
披着“现货订购”外衣的非法期货...   近期,甘肃西北商品交易市场有限公司旗下的“铂银掘金APP”引发大量投资者集中维权。该平台打着“低...