C、C++中的日期和时间 time_t与struct tm转换
一.概念
Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT)。比如,中国内地的时间与UTC的时差为+8,也就是UTC+8。美国是UTC-5。
Calendar Time:日历时间,是用“从一个标准时间点到此时的时间经过的秒数”来表示的时间。这个标准时间点对不同的编译器来说会有所不同,但对一个编译系统来说,这个标准时间点是不变的,该编译系统中的时间对应的日历时间都通过该标准时间点来衡量,所以可以说日历时间是“相对时间”,但是无论你在哪一个时区,在同一时刻对同一个标准时间点来说,日历时间都是一样的。
epoch:时间点。时间点在标准C/C++中是一个整数,它用此时的时间和标准时间点相差的秒数(即日历时间)来表示。
clock tick:时钟计时单元(而不把它叫做时钟滴答次数),一个时钟计时单元的时间长短是由CPU控制的。一个clock tick不是CPU的一个时钟周期,而是C/C++的一个基本计时单位。
二. 计时
1. clock: C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
clock_t clock( void );
返回:从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。
clock_t:是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
2. CLOCKS_PER_SEC 在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
可以看到可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:
void elapsed_time()
{
printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC);
}
3. 用clock计时
当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:
方法1:
#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
{
long &n
相关文档:
--------升级 Space C V2.1.2
2010.2.16
*将软件界面风格修改为跟随Windows系统,美化了软件界面,使开发过程更舒心。
*将DOXBox虚拟的开启/关闭,更改到编译配中的TC2.0页面。
*增加‘小语言’Tiny 的编译器-Smmy,并附带DOS版的TMMY_DOS虚拟机。
*增加‘小语言’Tiny 的对应Windows版虚拟机TMMY ......
常见问题:
编译失败,报错如下“无法解析的外部符号 _WSACleanup@0”等。
原因是没有引用winsock.h所在的库--Ws2_32.lib。
这时只要添加一行代码
#pragma comment( lib, "Ws2_32.lib")
即可。 ......
原文:http://hi.baidu.com/magicdemon/blog/item/821b2e22d7df494cad34debd.html
C++下基本类型所占位数和取值范围:
符号属性 长度属性 基本型 所占位数 取值范围 输入符举例&n ......
C++内置对布尔类型的支持,其关键字是bool,C语言直到C99标准才增加了对布尔类型的支持,关键字为_Bool,因为bool已经被C++用了,所以选了这个十分奇怪的关键字。在这之前C程序员对布尔类型的模拟是相当混乱的。为了在C和C++程序中以统一的方式使用布尔类型,同时提高可移植性,可以采用下面的方式:
构造一个stdbool.h头文 ......
C/C++头文件一览 收藏
C/C++头文件一览
C、传统 C++
#include <assert.h> //设定插入点
#include <ctype.h> //字符处理
#include <errno.h> //定义错误码
#include <float.h> //浮点数处理
#include <fstream.h> //文件输入/输出
#i ......