条件表达式中的指针/整数类型不匹配
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));
该程序运行正常,但我看不到警告的全部内容。 “None”和strerror(errno)都返回一个字符串而不是Integer值。 我正在将errno数字与零进行比较。
非常感谢任何建议,
检查是否包含
标头。 如果不是,则可以将strerror
的返回值视为整数值。 它将解释为什么程序运行正常(链接器可以找到名为strerror
的匹配函数,因为默认情况下链接了C标准库),而编译器报告警告。