1.概要
コールバック関数 (関数ポインターとも呼ばれます) は、別の関数(ハンドラ)に引数として渡される関数です。
2.コールバック関数を使用する利点
(1)柔軟性
別の関数をコールバックとして渡すことにより、実行時に関数の動作をカスタマイズできるため、関数の使用における柔軟性が向上します。これにより、コードをよりモジュール化して再利用可能にすることができます。
(2)非同期プログラミング
コールバックを使用して非同期処理をすることができます。
3.C言語コールバック関数の例
callback_sample1.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <stdio.h> // Define a callback function type //「void 型を戻り値とし、int型を引数にもつコールバック関数」へのポインタ型を宣言 typedef void (*callback_func)(int); // ハンドラの定義:コールバック関数を引数とする関数 void handler(callback_func callback,int arg) { printf("Doing handler with %d\n", arg); arg+=1; // コールバック関数を呼び出す callback(arg); } // コールバック関数の定義 void callback_1(int arg) { printf("Received callback with %d\n", arg); } int main() { // ハンドラを呼び出してコールバック関数を渡す handler(callback_1,10); return 0; } |
実行例
end