C言語のコールバック関数をどのように使うのか
C言語では、コールバック関数は他関数に引数として渡せる関数ポインタであり、これにより当該関数が呼び出された時に渡されたコールバックを実行できます。以下はコールバックを使った簡単なサンプルです。
まず、コールバック関数のプロトタイプを定義します。このプロトタイプは、あなたが渡したいコールバック関数のシグニチャと一致する必要があります。
typedef void (*callback_function)(int);
コールバック関数が使われるべき場所には、コールバック関数をパラメータとして受け取る関数を宣言することができます。
void perform_operation(int data, callback_function callback) {
// 执行一些操作
// ...
// 调用回调函数
callback(data);
}
その上で、必要な時に呼び出せる、具体的なコールバック関数を定義できます。
void my_callback(int data) {
printf("回调函数被调用,数据为:%d\n", data);
}
最後に、その上で定義した関数とコールバック関数を利用して、操作を実行した後にコールバック関数を呼び出せます。
int main() {
int data = 10;
perform_operation(data, my_callback);
return 0;
}
前述の例では、perform_operation関数は整数パラメータと、コールバック関数を引数として受け取ります。関数が実行されている間、渡されたコールバック関数に、渡された整数パラメータをコールバック関数の引数として呼び出されます。main関数では、関数内部で呼び出される、my_callbackという名前のコールバック関数を引数として渡しています。
コールバック関数の型は、関数ポインタの型に一致し、引数および返り値の一貫性を保つ必要があることに注意してください。