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 に答える