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