什么是void(*)(void *)

时间:2012-10-11 01:21:33

标签: c++ c function-pointers

  

可能重复:
  What does “void *(*)(void *)” mean in c++?

void(*)(void *)的含义是什么?

我在“使用C掌握算法”一书的示例代码中遇到了这种类型

void list_init(List *list, void (*destroy)(void *data)) 
{
...

...
}

2 个答案:

答案 0 :(得分:9)

这是一个函数指针。

void (*destroy)(void *data)

destroy是一个指向函数的指针,该函数返回void并以void*作为参数。

cdecl.org是识别复杂C声明的有用工具。另外,请查看the spiral rule

答案 1 :(得分:2)

在这种特定情况下,它的指针可以将任何函数强制转换为void(*)(void *),函数参数void *可以是任何类型。