【发布时间】:2011-11-16 18:53:23
【问题描述】:
我需要让以下代码独立于工作平台:
timeval tv;
tv.tv_sec = std::numeric_limits<time_t>::max();
此代码在各种 Linux OS 和 Mac OS X 下都能正常运行。
不幸的是,在 windows 下这将返回 -1,对于 tv.tv_sec。
我当时想像这样重新定义 time_t:
typedef int time_t;
这也不起作用,因为编译器现在抱怨:
error C2371: 'time_t' : redefinition; different basic types
我怎样才能得到这个代码在平台上独立运行的代码?
【问题讨论】:
-
tv.tv_sec的类型是什么?要么不是time_t,要么你的 C++ 标准库由于某种原因没有正确编译。 -
tv 是 time.h 中定义的时间值。 tv_sec 在 winsok.h 中定义为 long。
-
@Joe Gauterin:因为他希望能够在任何平台上编译。
标签: c++ visual-studio visual-c++