7

重複の可能性:
C++ で「void *(*)(void *)」とはどういう意味ですか?

タイプ 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取る関数へのポインタです。void*

cdecl.orgは、複雑な C 宣言を識別するための便利なツールです。また、らせんの法則を見てみましょう。

于 2012-10-11T01:28:53.220 に答える
3

この特定のケースでは、任意の関数を void(*)(void *) にキャストできるポインターであり、関数パラメーター void * は任意の型にすることができます。

于 2012-10-11T01:47:14.763 に答える