1

我正在使用下面列出的结构和方法,包括 sys/time.h 或 time.h 不会改变任何东西。可能是什么问题?

    struct tm theTime;
    strptime((char *)nodeValue, "%a %b %d %H:%M:%S +0000 %Y", &theTime);
    time_t epochTime = timegm(&theTime);

我正在使用 XCode 并为 armv7 编译。(以前,这工作得很好。我不知道从前有什么变化......)

我收到以下错误:

    Variable has incomplete type 'struct tm'
    Implicit declaration of function 'strptime' is invalid in C99
    Implicit declaration of function 'timegm' is invalid in C99
4

2 回答 2

1

-D_POSIX_C_SOURCE=200809L通过在编译时或包含头文件之前定义功能测试宏来启用声明:

 #define _POSIX_C_SOURCE 200809L
 #include <time.h>

有关功能测试宏的更多信息,请参见此处_POSIX_C_SOURCE

于 2013-08-07T10:33:03.313 回答
1

我已经包含了另一个标题路径,其中也包含 time.h 并且其内容无关紧要。我修复了它,一切都恢复了。

因此,在这种情况下,最好检查头文件路径,看看是否有其他同名文件位于另一个目录中。

@ouah 的回答很好,这是一个很好的提示,但这不是我问题的直接解决方案。

于 2013-08-07T11:08:52.673 回答