我正在尝试在Objective-C中实现一个可变参数函数,并设置了如下方法
- (void)method:(id)o, ...
{
int c = 1;
va_list list;
va_start(list, o);
while (va_arg(list, id))
c++;
va_end(list);
}
对我来说,这段代码似乎应该可以正常工作。但是,当我用gcc编译它时,我收到以下错误
error: expected expression before ‘id’
考虑到我尝试使用id
可能会导致问题,我将id
替换为void *
;但是,我遇到了同样的错误(void *
取代了错误消息中的id
。是什么导致我遇到这个错误?
修改的
代码使用clang编译器编译,但我需要能够使用gcc。这是gcc中的错误吗? - submitted to GCC as a bug