我试图声明一个函数,该函数采用与参数类型相同的函数。
void rec(void(*f)(void(*)(void(*)(...))))
{
f(f);
}
我最终进行了递归尝试。
您始终可以从 void*
进行转换。
void rec(void* f)
{
((void(*)())f)(f);
}
但它不是类型安全的
我试图用 typedef
来做到这一点:
typedef void(*RecFunc)(RecFunc);
但不编译。
有可能吗?
最佳答案
你不能做你想做的事。正如您所注意到的,您最终试图创建一个递归的 typedef
。语言不支持。
关于c++ - typedef函数指针递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50861955/