已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
2天前关闭。
Improve this question
为了简单起见,我有一个传递void (*)(int,int,int)
的函数,如何将其转换为参数?
示例:Function(void (*)(int,int,int) );
我希望在这里传递参数,但我不知道它们是什么
已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。
2天前关闭。
Improve this question
为了简单起见,我有一个传递void (*)(int,int,int)
的函数,如何将其转换为参数?
示例:Function(void (*)(int,int,int) );
我希望在这里传递参数,但我不知道它们是什么
2条答案
按热度按时间puruo6ea1#
Function
的声明要求你传递一个自由函数的地址(即不绑定到类示例的函数),这个函数有三个int
类型的参数,你没有指定Function
的返回类型,所以在这个例子中我假设它是void
。在这个例子中,
main
通过传递函数DoSomething
的地址来调用Function
,然后Function
的实现调用它所传递的函数(名为callback
)并传递3个参数1
、2
和3
。结果如下
调用
Function
不需要进行任何类型转换,如果遇到错误或开始认为应该执行类型转换来调用它,那么您将犯下严重错误。41ik7eoe2#
这就是你要找的吗?
您可能需要
const_cast
或reinterpret_cast
,这取决于您正在铸造...