其他分享
首页 > 其他分享> > c – 如何在不解除引用的情况下调用指向函数的指针?

c – 如何在不解除引用的情况下调用指向函数的指针?

作者:互联网

我在C程序中有一个奇怪的typedef语句,由Py生成.

double radius(int);  // function to be wrapped
typedef double (*radius_function_type)(int);    
bp::def("radius", radius_function_type(&radius));   // bp::def is a function for wrapping

到目前为止我想到的是上面的typedef statemnt不是那种类型,我们大多数人都熟悉,

typedef complex_type simple_alias;

相反,它是一种声明指向函数的指针的方法,该函数将int作为参数并返回double(与原型相同).所以我现在的问题是,如何使用函数的地址作为参数来调用指向函数的指针(不使用解除引用)?这也与原型不符.有人请解释一下!

解决方法:

你的问题很混乱.你在问这是做什么的:

radius_function_type(&radius)"

这只是一个C类型,有点像:

radius (int (42));

但由于radius已经是radius_function_type类型,因此您可以轻松地做到:

bp::def("radius", radius);

但由于这是Py生成的代码,因此输出可能会格外小心.

标签:c,typedef,function-pointers
来源: https://codeday.me/bug/20191003/1846565.html