C-条件表达式中的指针/整数类型不匹配


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

程序运行正常,但我看不到警告是全部。"无"和strerror(errno)都返回一个字符串,而不是整数值。我将Errno号码与零进行比较。

非常感谢您的建议,

检查您是否包括<string.h>标头。如果没有,则可以将strerror的返回值视为整数值。它可以解释为什么程序运行正常(链接器可以找到一个名为strerror的匹配函数,因为C标准库默认是链接的),而编译器则报告警告。

最新更新