我有一些在Windows和Linux上构建的代码。Linux在这一点上总是32位,但Windows是32位和64位。Windows希望将time_t设置为64位,而Linux仍然将其设置为32位。我很好,除了在某些地方time_t值被转换为字符串。所以,当time_T是32位时,应该使用%d来完成,而当它使用%lld时,它是64位的......这样做的聪明方法是什么?另外:有没有其他想法,比如,time_t传递给printf风格的函数来解决这个问题?
发布于 2018-05-10 14:20:38
我认为唯一真正可移植的方法是使用strftime,将time_t转换为字符串。
如果你确定,你只能在平台上操作的地方time_t是int,你可以转换为intmax_t(从stdint.h),并使用PRIdMAX(从inttypes.h)。
https://stackoverflow.com/questions/-100004062
复制相似问题