条件表达式中指针/整数类型不匹配(pointer/integer type mismatch in

2019-07-03 13:23发布

gcc 4.7.2 c89

你好,

我收到以下警告:

pointer/integer type mismatch in conditional expression

我用下面的编译CFLAGS -Wall -Wextra

fprintf(stderr, "'Failed to open file' Error [ %s ]\n",
        (errno == 0) ? "None" : strerror(errno));

该程序运行正常,但我不能看到该警告是怎么一回事。 这两个“无”和字符串错误(错误)返回一个字符串,而不是整数值。 而且我的errno号比较为零。

非常感谢您的任何建议,

Answer 1:

检查您是否已经包括<string.h>头。 如果不是,返回值strerror可以被视为一个整数值。 这可以解释为什么程序运行正常(链接器可以找到一个名为匹配功能strerror ,因为C标准库是默认链接),而编译器会发出警告。



文章来源: pointer/integer type mismatch in conditional expression