使用静态 C 类成员函数作为 C 回调函数
在 C 中,可以将类成员函数注册为C 回调函数,但前提是成员函数声明为static.
说明:
非静态成员函数具有与 this 指针对应的类型 A* 的隐式第一个参数。但是,C 回调函数通常没有第一个参数。要将类成员函数注册为回调,我们必须消除隐式的 this 指针。
解决方案:
将成员函数声明为静态。这意味着成员函数将无法访问 this 指针。
class A { public: A(); ~A(); static int e(int *k, int *j); }; A::A() { register_with_library(e) } int A::e(int *k, int *e) { return 0; }
替代方法:
在不可能或不希望使用的情况下静态成员函数,替代方法包括:
以上是静态 C 类成员函数如何用作 C 回调?的详细内容。更多信息请关注PHP中文网其他相关文章!