gpt4 book ai didi

指针和整数之间的c strptime警告比较

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:38 25 4
gpt4 key购买 nike

在 Ubuntu 10.04.2 x86_64 上使用 gcc 4.4.3 编译我收到以下警告:

warning: comparison between pointer and integer

对于这一行:

if (strptime(date_time, "%d-%b-%y %T", &tm) == NULL) {

如果我将 NULL 更改为 0,警告就会消失。但是 strptime 的手册页声明它在出错时返回 NULL。我包括 <time.h>#define __USE_XOPEN 1在上一行。我也试过#define _XOPEN_SOURCE .

感谢您的宝贵时间。

编辑

完整包括:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>

#define __USE_XOPEN 1 /* needed for strptime */
#include <time.h>

#include <arpa/inet.h>
#include <errno.h>

#include "recv.h"
#include "tcp.h"
#include "types.h"

编辑

下面的代码给出了同样的警告:

#define __USE_XOPEN 1 /* needed for strptime */
#include <time.h>

#include <stdio.h>

int main()
{
struct tm tm;
char date_time[] = "3-May-11 12:49:00";

if (strptime(date_time, "%d-%b-%y %T", &tm) == NULL) {
fprintf(stderr, "Error: strptime failed matching input\n");
}

return 0;
}

编辑编辑

但将其更改为 _XOPEN_SOURCE 有效!并将定义移动到程序的顶部固定原来的。

最佳答案

根据 POSIX documentation , strptime<time.h> 中声明.

你需要

#define _XOPEN_SOURCE
/* other headers, if needed, after the #define
#include <assert.h>
#include <ctype.h>
#include <stdio.h>
*/
#include <time.h>

在范围内有一个正确的原型(prototype)。

没有原型(prototype),编译器假定函数返回 int .

关于指针和整数之间的c strptime警告比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com