使用C 類成員函數作為C 回呼函數
可以將C 類成員函數註冊為C 回調函數,但有一定的要求函數要滿足。
Q1:首先可以註冊C嗎像我正在嘗試做的類別成員函數,如果是的話怎麼做?
A1:是的,如果函數宣告為靜態函數,則可以將 C 類別成員函數註冊為回呼函數。與非靜態成員函數不同,靜態成員函數沒有隱式「this」指標作為其第一個參數。這使得它們能夠與 C 回呼函數的簽名相容。
Q2:有替代/更好的方法來解決這個問題嗎?
A2:這裡是一些替代選項:
使用靜態成員函數的範例:
class A { public: A() { register_with_library(&A::e); } ~A() {} static int e(int *k, int *j) { return 0; } };
以上是C 類別成員函數可以用作 C 回呼函數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!