静的 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 中国語 Web サイトの他の関連記事を参照してください。