函数指针带(void *)

时间:2013-05-26 01:36:00

标签: c

在C中,函数指针(void*)在做什么:

    int (*fn) (void*)

如果参数为空,则应为:

    int (*fn) ()

我的理解是void*是一大堆记忆。 void* mem表示mem指向一大块内存。但是什么是(void*)没有名字?

4 个答案:

答案 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”