如何获得函数所需的参数数量

时间:2019-01-03 14:09:18

标签: c function arguments

这可能是不可能的,但实际上我们可以获取函数在C语言中需要的参数数量吗?

目标是创建一个名为call的函数,该函数需要一个函数的指针和一些参数。但是,因为我们无法计算可变参数函数中的参数数量,所以我想计算该函数的指针需要多少个参数。

这是我要创建的方式:

void func(int a, int b, char* c) {
    // Do things
}

int call(void *f, ...) {
    // Find how much arguments *f wants and loop over the variadic args
}

int main() {
    call(func, 1, 2, "hello");
}

顺便说一句,它需要在运行时。

1 个答案:

答案 0 :(得分:0)

除了C实现可以自由提供扩展的事实外,C标准中没有任何东西可以确定函数所需的参数数量。