将带有void指针参数的函数指针传递给函数

时间:2018-03-16 02:49:31

标签: c pointers struct function-pointers void-pointers

我在结构中有一个带有void *参数的函数指针。 我想把这个函数传递给另一个函数,但是我得到编译错误......

这是结构中的函数声明:

void (*on_click)(void *);

这就是我将函数指针传递给我的函数的方法,其中box是一个结构:

but1 = create_button(posbut, "test", BUTTON_DEF, &on_click((void *)box));

我有错误:无法转换为指针类型,并且此行上需要左值作为一元'&'操作数。

谢谢!

1 个答案:

答案 0 :(得分:1)

您必须传递函数指针,如 1

but1 = create_button(posbut, "test", BUTTON_DEF, on_click);

我不知道您使用的是哪个框架,所以我不知道是否还有其他参数必须传递给create_button,但大多数可能create_button将是那个使用正确的参数调用函数指针。

<强> fotenotes

前提是create_button的最后一个参数是void (*callback)(void*)