C のコールバック
コールバックは、関数またはクラスによって受け入れられる呼び出し可能なオブジェクトであり、コールバックに基づいて現在のロジックをカスタマイズするために使用されます。
いつ使用するかコールバック:
C 11 の呼び出し可能オブジェクト:
コールバックはさまざまな形式を取ることができ、すべて「呼び出し可能」とみなされます:
コールバック表記:
1.関数ポインター
2.メンバー関数へのポインタ
3. std::function オブジェクト
4.テンプレート化されたコールバック
これにより、より汎用的なコードが可能になります。
互換性のあるコールバックの型:
例:
関数ポインタの例:
void tranform_every_int(int * v, unsigned n, int (*fp)(int)); int double_int(int x) { return 2*x; } int square_int(int x) { return x*x; }
std::functionオブジェクトの例:
void stdf_tranform_every_int(int * v, unsigned n, std::function<int(int)> fp); int a[5] = {1, 2, 3, 4, 5}; stdf_tranform_every_int(&a[0], 5, Meow{8});
テンプレート化されたコールバックの例:
int nine_x_and_y (int x, int y) { return 9*x + y; } using std::placeholders::_1; stdf_transform_every_int_templ(&a[0], 5, std::bind(nine_x_and_y, _1, 4));
以上がコールバックはどのように C コードの機能を強化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。