当前位置:C++技术网 > 资讯 > 时间数据类型:2 时间类型time_t详细说明

时间数据类型:2 时间类型time_t详细说明

更新时间:2015-06-26 18:21:16浏览次数:1+次

    在C运行库定义crtdefs.h头文件或者time.h头文件中,定义了存储时间的数据类型time_t。下面是文件类型的详细定义。
#ifndef _TIME32_T_DEFINED
typedef _W64 long __time32_t;   /* 32位的时间类型 */
#define _TIME32_T_DEFINED
#endif

#ifndef _TIME64_T_DEFINED
typedef __int64 __time64_t;     /* 64位的时间类型 */
#define _TIME64_T_DEFINED
#endif

/* - 如果没有定义_TIME_T_DEFINED宏,则定义time_t为32位的,否则定义为64位的 - */
#ifndef _TIME_T_DEFINED
#ifdef _USE_32BIT_TIME_T
typedef __time32_t time_t;      /* 时间类型重定义  */
#else
typedef __time64_t time_t;      /* 时间类型重定义 */
#endif
#define _TIME_T_DEFINED         /* 避免事件类型 time_t 的多次重定义 */
#endif
    从time_t到_time64(__time32_t ),再到__int64(_W64 long) ,也就可以很清楚的看到time_t实际上的真实类型是64位或者32位的整数。
    这个时间类型不仅是在C语言中使用,在C++语言甚至MFC中,都可以直接使用。而这样的表示是计算机的底层支持。时间值存储在计算机中就是以一个整型值存储的。在其他语言中,最多就是类型的名字定义的不一样罢了,底层还是一样的。
    以前在使用时间时总是觉得这样表示很奇怪。但是这样表示在计算机中是非常方便的。因为这样最终要转成需要的时间格式很麻烦。但是,有现成的函数和结构可以表示,因此处理起来也是很方便的。而要方便的处理时间,就要了解相关的时间处理函数和时间结构体。

     在C库函数列表的时间相关的函数中有对时间处理的函数,可以参考《C库函数功能分类简述列表之时间与日期、内存和其他函数

    这里只是简单的介绍了time_t类型,其他的再分开讲,将问题简单化,比较好接受。