c言語 コールバック関数

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