7

可能重复:
“void *(*)(void *)”在 C++ 中是什么意思?

void(*)(void *) 类型是什么意思?

我在“Mastering Algorithms with C”一书的示例代码中遇到了这种类型

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

...
}
4

2 回答 2

10

这是一个函数指针。

void (*destroy)(void *data)

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

cdecl.org是识别复杂 C 声明的有用工具。另外,看看螺旋规则

于 2012-10-11T01:28:53.220 回答
3

在这种特定情况下,它是一个指针,任何函数都可以转换为 void(*)(void *) 并且函数参数 void * 可以是任何类型。

于 2012-10-11T01:47:14.763 回答