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数字与零进行比较。
非常感谢您的任何建议,
最佳答案
检查是否包含<string.h>
标头。如果不是,则可以将strerror
的返回值视为整数值。它可以解释为什么程序可以正常运行(链接器可以找到名为strerror
的匹配函数,因为默认情况下C标准库是链接的),而编译器将报告警告。