这可能是不可能的,但实际上我们可以获取函数在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");
}
顺便说一句,它需要在运行时。
答案 0 :(得分:0)
除了C实现可以自由提供扩展的事实外,C标准中没有任何东西可以确定函数所需的参数数量。