K&R TCPL 附录B中<time.h>中的函数的相关
2013-07-16 18:49
621 查看
codeblock / vs2010中 clock_t 和 time_t 的大小为4
在vs2010中运行发现无法储存在tp中,与msdn描述不符,令人费解,参见:http://msdn.microsoft.com/en-US/library/1f4c8f33%28v=VS.80%29.aspx
后来终于被证实是由于后续版本库中time_t是64位的,因此普通的long格式打印没打出来。因此需要对_USE_32BIT_TIME_T进行宏定义。否则就需要打印__int64型变量了。
在codepad codeblocks pellesc中均正常。
到底这个数是1900还是1970后经过的秒数,似乎与实现有关,但暂没空研究标准了
③double difftime(time_t time2, time_t time1)
difftime函数返回time2-time1的值(以秒为单位)。
如果参数反了会返回负数。在实现上,由于time2 time1是无符号的,需要判断大小分别处理。(具体参见库的实现)
①clock_t clock(void)
clock函数返回程序开始执行后占用的处理器时间。如果无法获取获取处理器时间,则返回值为-1。clock() / CLOCKS_PER_SEC是以秒为单位表示的时间。#include <stdio.h> #include <time.h> int delay(int ms) { int start; start = clock(); while(clock() - start < ms) ; return ms; } int main(int argc, char *argv[]) { clock_t start = 0; clock_t end = 0; long int loop = 10579001L; delay(300); printf("现在自程序开始运行了「 %d 」毫秒喵~\n", clock()); printf("程序作「 %ld 」次自减运算运算所耗时间为", loop); start = clock(); while(loop--) ; end = clock(); printf("「 %d 」毫秒,即「 %f 」秒喵~\n", end - start, (double)(end - start) / CLOCKS_PER_SEC); return 0; }
②time_t time(time_t *tp)
time函数返回当前日历时间。如果无法获取日历事件,则返回值为-1。如果tp不是NULL,则同时将返回值赋给tp。#define _USE_32BIT_TIME_T #include <stdio.h> #include <time.h> int delay(int ms) { int start; start = clock(); while(clock() - start < ms) ; return ms; } int main(int argc, char *argv[]) { time_t a = 12510; time_t now = 0; printf("time_t型变量a的初始值是「%d」\n",a); now = time(&a); printf("time_t型变量now的被改写成了「%d」,同时a也被改写成了「%d」\n", now, a); delay(2500); now = time(0); printf("now在2500毫秒后被改写成了「%d」,但是由于time()的参数tp是NULL,a依然保持2500毫秒前的值「%d」\n", now, a); return 0; }
在vs2010中运行发现无法储存在tp中,与msdn描述不符,令人费解,参见:http://msdn.microsoft.com/en-US/library/1f4c8f33%28v=VS.80%29.aspx
后来终于被证实是由于后续版本库中time_t是64位的,因此普通的long格式打印没打出来。因此需要对_USE_32BIT_TIME_T进行宏定义。否则就需要打印__int64型变量了。
在codepad codeblocks pellesc中均正常。
到底这个数是1900还是1970后经过的秒数,似乎与实现有关,但暂没空研究标准了
③double difftime(time_t time2, time_t time1)
difftime函数返回time2-time1的值(以秒为单位)。如果参数反了会返回负数。在实现上,由于time2 time1是无符号的,需要判断大小分别处理。(具体参见库的实现)
相关文章推荐
- C#中如何将List<自定义>转为Json格式 及相关函数-DataContractJsonSerializer
- c\c++ 时间相关函数 include<time.h>
- 错误的程序之阶乘之和测试程序的快慢程度(加一个计时器)<time.h>和clock()函数
- <C语言>打印(输)出系统时间-----time相关函数
- C#中怎样将List<自己定义>转为Json格式 及相关函数-DataContractJsonSerializer
- #include<time.h> 库函数详解
- c++日期和时间相关操作-<time.h>(ctime)
- #include<time.h> 库函数详解
- <笔试><面试>C/C++单链表(最综合)最全工程从建立到相关函数实现
- <C/C++>日期和时间的使用(time相关函数大全)
- 黑马程序员 高新技术<一>---> eclipse开发工具、相关知识加强及枚举类
- #include<time.h>
- Java基础<三>---> 流程控制与函数
- 【javascript笔记】声明函数的三种方式<二>
- < Unity 3D专栏 >添加控件检测事件,函数处理
- #include <string.h>与'string' : undeclared identifier相关问题
- 日期格式化标签<fmt:formatDate>&<fmt:setTimeZone>时区标签的使用demo
- 《深入Linux内核架构》附录A<体系结构相关知识>笔记
- error C2244: “QMultiMap<Key,T>::insert”: 无法将函数定义与现有的声明匹配
- 读<jQuery 权威指南>[6]--实用工具函数