某行代码为何编译通不过
编译环境Mingw,gcc -c test.c报错,去掉注释的那行可以通过。是编译器太老的关系吗?#include <stdio.h>
#include <stdlib.h>
// #ifndef HAVE_ERRX
static inline void errmsg(char doexit, int excode, char adderr, const char *fmt, ...);
int colormode_or_err(const char *str, const char *errmsg);
#define errx(E, FMT...) errmsg(1, E, 0, FMT)
// #endif
//#ifndef HAVE_ERR_H
static inline void errmsg(char doexit, int excode, char adderr, const char *fmt, ...)
{
fprintf(stderr, "%s: ", "program_invocation_short_name.\n");
if (fmt != NULL) {
// va_list argp;
// va_start(argp, fmt);
// vfprintf(stderr, fmt, argp);
// va_end(argp);
if (adderr)
fprintf(stderr, ": ");
}
if (adderr)
fprintf(stderr, "%m");
fprintf(stderr, "\n");
if (doexit)
exit(excode);
}
int colormode_or_err(const char *str, const char *errmsg)
{
const char *p = str && *str == '=' ? str + 1 : str;
int colormode;
colormode = colormode_from_string(p);
if (colormode < 0)
errx(EXIT_FAILURE, "%s: '%s'", errmsg, p); // 这行为什么编译通不过啊
return colormode;
}