【问题标题】:Compiler gets warnings when using strptime function (C)编译器在使用 strptime 函数时收到警告 (C)
【发布时间】:2013-03-11 09:01:06
【问题描述】:

输入man strptime 表示该函数需要声明_XOPEN_SOURCE 并包含time.h 标头。我做到了。但是,当我尝试编译我的代码时,我得到:

./check.c:56: 警告:函数‘strptime’的隐式声明

看看我的代码:

int lockExpired(const char *date, const char *format, time_t current) {
        struct tm *tmp = malloc(sizeof(struct tm *));
        time_t lt;
        int et;

        strptime(date, format, tmp);
        lt = mktime(tmp);
        et = difftime(current, lt);

        if (et < 3600)
                return -et;

        return 1;
}

函数声明也是:

char *strptime(const char *s, const char *format, struct tm *tm);

谁能告诉我我的问题出在哪里?

【问题讨论】:

    标签: c compiler-warnings strptime


    【解决方案1】:

    我发现我需要定义 __USE_XOPEN_GNU_SOURCE 才能让它快乐。

    【讨论】:

    • 就是这样,谢谢!奇怪的是man strptime在我的Linux机器上错了;它写_XOPEN_SOURCE 这对我不起作用。话虽如此,但我不确定_GNU_SOURCE__USE_XOPEN 似乎对我自己有用。
    • 确保在使用#include &lt;time.h&gt;之前使用#define __USE_XOPEN
    猜你喜欢
    • 1970-01-01
    • 2016-07-30
    • 2020-07-10
    • 1970-01-01
    • 2017-04-10
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多