【发布时间】:2012-06-28 16:48:10
【问题描述】:
我正在研究嵌入式系统。我们的平台是 32 位的,所以 time_t 的大小是 32 位的。
现在我想将一个结构作为char 数组发送到Windows 7 计算机。
我的结构的字段之一是time_t。
我不能改变结构。
所以我必须使用 32 位变量将时间值发送到 Windows 机器,当 char 数组到达时,我必须将 32 位无符号整数值转换为 64 位 time_t。
我想我不能直接将 32 位整数转换为 64 位 time_t,因为 32 位 time_t 从 1970 年开始,而 64 位从 1600 年开始。
那么有什么办法可以转化吗?
【问题讨论】:
-
[google.se/…](google) 你自己的标题 :-)
-
我想这可能会对你有所帮助.. stackoverflow.com/questions/2467418/…
-
Our platform is 32-bit so time_t size is 32-bit这不是真的。操作系统位数与time_t的大小无关。只是以前time_t通常被定义为与寄存器大小相同的大小。 32位Windows已经用了64位time_t很久了,Linuxhas just moved to 64-bittime_trecently -
because 32-bit time_t starts from year 1970 but 64-bit start from year 1600也完全错误。 32 位或 64 位time_t通常使用 1970 纪元。只有Windows FILETIME从1601开始。这些是不同类型的时间,有not only 2 of them
标签: c windows type-conversion 32bit-64bit time-t