C 中的回調
回呼是函數或類別接受的可調用對象,用於根據回調自訂當前邏輯。
何時使用回呼:
C 11中的可呼叫:
回呼可以採取各種形式,所有形式都被視為「可呼叫」:
回呼表示法:
1。函數指標
2.指向成員函數的指標
int C_foobar (int x, C const &c, int (C::*moo )(int));int C_foobar (int x, C const &c, f_C_int_t moo);
std::function
模板
模板化回調: 任何可呼叫類型(例如、lambda表達式、綁定表達式、函數物件)
範例:
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; }
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中文網其他相關文章!