c++ - typedef函数指针递归

标签 c++ c

我试图声明一个函数,该函数采用与参数类型相同的函数。

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/

相关文章:

c++ - 分配器如何创建和销毁数组?

c++ - S3Client::GetObject with SetRange 返回错误数据?

c++ - 如何减少模板模板参数的参数数量

c - 调用转换函数指针安全吗?

c - C 中包含动态结构数组的结构的 Realloc

c++ - 迭代器删除 C++ 的自定义实现

c++ - 如何为算术表达式创建 BST

c - pcap_set_filter() 可以与 pcap_open_offline() 一起使用吗?

涉及动态分配二维数组的 malloc 的 C 代码在编译后崩溃

c++ - 为什么我不能通过 const 指针修改变量?