在 C 中,函数指针(void*)
在做什么:
int (*fn) (void*)
如果参数什么都不是,那么它应该是:
int (*fn) ()
我的理解是void*
大块的记忆。 void* mem
表示mem
指向一块内存。但什么是(void*)
没有名字的?
在 C 中,函数指针(void*)
在做什么:
int (*fn) (void*)
如果参数什么都不是,那么它应该是:
int (*fn) ()
我的理解是void*
大块的记忆。 void* mem
表示mem
指向一块内存。但什么是(void*)
没有名字的?
该函数指针声明不需要您提供void*
名称。它只需要一个类型来定义参数列表。
这类似于如何:
void my_function(int x);
和
void my_function(int);
void *
是一个匿名指针。它指定一个指针参数,但不指明所指向的具体数据类型。
未命名的参数与没有参数不同。声明:
int (*fn)(void*);
只是声明这fn
是一个带void*
参数的函数指针。参数名称是无关紧要的(并且仅在函数实现中它是局部变量的名称时才有意义)。
(虽然在函数声明中参数名称不是必需的,但对于阅读代码以识别参数是什么的人来说仍然很有用。)
它的意思fn
是“任何将一块内存作为参数并返回一个 int 的函数”