【发布时间】:2013-04-09 01:44:07
【问题描述】:
这让我发疯了,我已经在这个问题上停留了几个小时。我在项目的几个文件中使用 time.h,当我尝试使用函数 time() 时,每个文件都会出现错误“时间未在范围内声明”。奇怪的是 time_t 被定义了,我没有得到任何错误。我想也许它以某种方式引入了 C++ 版本,所以尝试使用命名空间 std:: 但这也不起作用。 struct tm 和 localtime 也没有在范围内声明。顺便说一句,所有代码在其他系统上都可以正常编译。
我在这里发疯了,我怎样才能弄清楚文件正在使用哪些标头,定义了什么或发生了什么?我不知道如何继续,请帮助!
我在 Xcode 3.2.5 中使用 GCC 4.2 和 10.6 SDK
如果你想看这里的代码,虽然没用,但我认为它必须是编译器/包含文件的问题。
time_t long_time;
time(&long_time);
tm* st = localtime(&long_time);
sprintf(temp, "%02d:%02d:%02d %02d.%02d.%04d ",
st->tm_hour, st->tm_min, st->tm_sec, st->tm_mon+1, st->tm_mday, st->tm_year+1900);
【问题讨论】:
-
您实际上有
#include <time.h>在您尝试使用时间函数的文件的第一行中?还是你只是忘了做? -
@H2CO3 我认为是正确的;向我们展示您的
#include声明。不过,要回答您的问题,您可以转到Terminal并输入man -s 3 time或man -s 3 localtime,它会告诉您需要包含哪些内容。 -
尝试在 Xcode 中打开
time.h,文件打开 Quickly-time.h 顺便说一句,我可以在 Mountain Lion Xcode 4.2.1 上使用time()