在call
函数定义内部,我try 使用三元运算符在循环中检索传递给它的各种参数.编译停止,出现expected specifier-qualifier-list before ‘(’ token
错误.
#define ARG_N 3
char *args_types[ARG_N] = {"int", "float", "char"};
void call(...) {
va_list args;
void *args_values[ARG_N];
va_start(args, NULL);
for (int i = 0; i < ARG_N; ++i) {
char *arg;
arg = args_types[i];
args_values[i] = (void *)va_arg(args, (strcmp(arg, "int") ? int : strcmp(arg, "float") ? float : char));
}
va_end(args);
}
int main(void) {
call(6, 55.33, 'c');
return 0;
}
据我所知,在未初始化的情况下使用 struct 时会出现此错误.在这种情况下,这意味着什么?