1.概要
コールバック関数 (関数ポインターとも呼ばれます) は、別の関数(ハンドラ)に引数として渡される関数です。
2.コールバック関数を使用する利点
(1)柔軟性
別の関数をコールバックとして渡すことにより、実行時に関数の動作をカスタマイズできるため、関数の使用における柔軟性が向上します。これにより、コードをよりモジュール化して再利用可能にすることができます。
(2)非同期プログラミング
コールバックを使用して非同期処理をすることができます。
3.C言語コールバック関数の例
callback_sample1.c
#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