13

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

./check.c:56: 警告:函数'strptime'的隐式声明</p>

看我的代码:

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);

谁能告诉我我的问题来自哪里?

4

1 回答 1

26

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

于 2013-03-11T09:03:53.617 回答