#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类型,其他的再分开讲,将问题简单化,比较好接受。