| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 初识库函数“time” -> 正文阅读 |
|
[系统运维]初识库函数“time” |
首先,要先对库函数有一个基本的概念,什么是“库函数”。 【来自:百度百科】库函数(Library function)是将函数封装入库,供用户使用的一种方式。方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include<>加到里面就可以了。一般是放到lib文件里的。 这个概念很好理解,C语言的库函数给用户提供了极大的方便。接下来列举一下库函数的分类。 (1)I/O 函数。包括各种控制台I/O、缓冲型文件I/O和UNIX式非缓冲型文件I/O操作。 需要的包含文件:stdio.h (2)字符串、内存和字符函数。包括对字符串进行各种操作和对字符进行操作的函数。 需要的包含文件:string.h、mem.h、ctype.h或string.h (3)数学函数。包括各种常用的三角函数、双曲线函数、指数和对数函数等。 需要的包含文件:math.h (4)时间、日期和与系统有关的函数。对时间、日期的操作和设置计算机系统状态等。 需要的包含文件:time.h (5)动态存储分配。包括"申请分配"和"释放"内存空间的函数。 需要的包含文件:alloc.h或stdlib.h (6)目录管理。包括磁盘目录建立、查询、改变等操作的函数。 (7)过程控制。包括最基本的过程控制函数。 (8)字符屏幕和图形功能。包括各种绘制点、线、圆、方和填色等的函数。 (9)其它函数。 初学者在编程过程中基本只涉及到前五种函数,以上库函数的9大分类也只做简单了解即可。 ?像stdio是一个I/O函数库,包含scanf、printf、getcher、putcher等函数一样,time函数库中也包含一些函数。例如:clock、time、ctime、gmttime、localtime、mktime、asctime、difftime、strftime等。以下是其功能的简单介绍。 clock: 获取程序开始执行后占用的处理器时间,返回值clock_t。 time:获取当前系统时间(UTC时间)的time_t值。 ctime:将time_t值转换为表示本地时间的字符串。 gmttime:将time_t值转换为表示GMT时间的字符串。 localtime:将time_t转换为表示本地时间的strunct tm结构。 mktime:将表示本地时间的struct tm转换为time_t。 asctime:将struct tm转换为字符串形式。 difftime:得到两个日历时之间的差值。 strftime:自定义把结构体tm的日期与时间信息转换为制定的格式。 下面我将引入一个计算阶乘的程序展示time函数库中计时函数clock()的功能。 例题:输入正整数n,计算s=1!+2!+3!+......+n!的末了六位(不含前导0)。n≤10^6,n!表示n的阶乘并输出运行时间。?
?本例答题很好理解。现在来解释一下涉及到time函数库函数的内容。 引用库函数time时,在程序开头写上引用库函数的声明#include<time.h>即可。 程序最后有printf("Time used =%.2f\n",(double)clock()/CLOCKS_PER_SEC);的语句。 clock()返回值clock_t就是long类型。本程序中使用的强制类型转换的操作。在clock前面加上(double)就将clock的返回转化为double类型,作用就是精确度变高了。 百度中有这样的解释:clock()返回的不是当前的UTC时间,而且返回当前程序占用的CPU时间,用clock()返回的值除于CLOCKS_PER_SEC常量可以得到当前程序的运行时间,单位是秒。CLOCKS_PER_SEC和操作系统相关,尽量不要使用clock()的返回值。 将这个程序放在编程环境中运行,出现两行数字,第一行是s值,第二行是程序运行时间。 程序运行时间的问题需要进一步解释: 输入“9”,按Enter键后能立马得到结果362880,但是输出的Time used不是0。原因在于键盘的输入时间也被计算在内,这是在程序启动之后在进行的。为避免输入数据的时间影响,下面我们介绍一种成为“管道”的小技巧:在Windows命令行下执行echo 20|abc,操作系统会自动把20输入,其中abc是程序名。Linux系统有其他输入方法(作者现在也不太明白)。这里留下一个可供后续继续学习的内容:命令行操作。(也是《算法竞赛 入门经典》一书中介绍的)欢迎读着来和作者共同学习,以及在后续的文章中作者也会更新有关命令行操作的知识内容。 读着可以尝试自己运行此程序并观察输出结果,也可以结合其他程序进一步加深对time库函数的理解。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 16:51:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |