变量函数不编译

时间:2015-06-01 18:56:15

标签: objective-c gcc variadic-functions

我正在尝试在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

0 个答案:

没有答案