time.h函数看不到头文件

时间:2013-08-07 10:30:04

标签: ios c xcode time

我使用下面列出的结构和方法,包括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

2 个答案:

答案 0 :(得分:1)

通过在编译时或包含标题之前定义特征测试宏-D_POSIX_C_SOURCE=200809L来启用声明:

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

有关功能测试宏_POSIX_C_SOURCE的详细信息,请参阅here

答案 1 :(得分:1)

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

因此,在这种情况下,最好检查标题路径以查看是否有任何其他文件具有相同的名称,但在另一个目录中。

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