在C中,函数指针(void*)
在做什么:
int (*fn) (void*)
如果参数为空,则应为:
int (*fn) ()
我的理解是void*
是一大堆记忆。 void* mem
表示mem
指向一大块内存。但是什么是(void*)
没有名字?
答案 0 :(得分:6)
该函数指针声明不要求您为void*
提供名称。它只需要一个类型来定义参数列表。
这类似于:
void my_function(int x);
和
一样有效void my_function(int);
答案 1 :(得分:4)
void *
是一个匿名指针。它指定一个指针参数,而不指示指向的特定数据类型。
答案 2 :(得分:2)
未命名的参数与没有参数不同。声明:
int (*fn)(void*);
仅表明fn
是一个带有void*
参数的函数指针。参数名称是无关紧要的(并且仅在函数 implementation 中有意义,其中它是局部变量的名称)。
(虽然在函数声明中不需要参数名称,但是对于读取代码以识别参数的人来说,它仍然是有用的。)
答案 3 :(得分:1)
这意味着fn
是“将内存块作为参数的任何函数,并返回一个int”