C言語におけるコールバック関数の基本と使い方
コールバック(callback)とは、他のコードに対して引数として渡され、あらかじめ決められたタイミングで呼び出される(実行される)実行可能なコードのことを指します。別の言葉で表現すると、「ある関数への参照(ポインタ)が、呼び出しを目的として別の関数の引数として渡された場合、その関数をコールバック関数と呼ぶ」ということになります。
C言語では、コールバック関数を呼び出すために関数ポインタを使用する必要があります。関数ポインタを使うことで、実行時に呼び出す関数を柔軟に切り替えることができ、イベント駆動型の処理や汎用的なライブラリ設計などに役立ちます。
サンプルコード
次のコードは、コールバック関数がどのようにタスクを実行するのかを示したものです。
#include<stdio.h>
void my_function() {
printf("This is a normal function.");
}
void my_callback_function(void (*ptr)()) {
printf("This is callback function.\n");
(*ptr)(); //calling the callback function
}
main() {
void (*ptr)() = &my_function;
my_callback_function(ptr);
}実行結果
This is callback function. This is a normal function.
コードの解説
このプログラムでは、まず main() 関数内で my_function のアドレスを関数ポインタ ptr に代入しています。その後、このポインタを my_callback_function() に渡すことで、コールバック関数内から元の関数を呼び出しています。
実行すると、まずコールバック関数自身のメッセージが出力され、続いて引数として渡された通常の関数が呼び出されてメッセージが表示されます。このように、関数ポインタを介することで、処理の流れの中で任意の関数を「後から呼び戻す」ことができるのがコールバックの基本的な仕組みです。
-
JavaScriptで関数をコールバックとして渡す方法
JavaScriptで関数をコールバックとして渡すJavaScriptでは、関数は第一級オブジェクト(ファーストクラスオブジェクト)として扱われるため、他の値と同じように変数に代入したり、引数として別の関数に渡したりすることができます。このように引数として渡され、後から呼び出される関数をコールバック関数と呼びます。コールバックを活用することで、処理の柔軟性が高まり、再利用可能なコードを書くことができます。以下は、add2() 関数を multiply9() 関数のコールバックとして渡すサンプルコードです。コード例<!DOCTYPE html> <html lang="
-
C言語のfillpoly()関数とは?図形の塗りつぶし方法を解説
概要C言語のグラフィックス用ヘッダーファイル「graphics.h」には、三角形、四角形、五角形、六角形などの多角形(ポリゴン)を描画し、その内部を塗りつぶすための fillpoly() 関数が用意されています。この関数は、線のみを描く drawpoly() 関数と同じ引数を受け取る点が特徴です。構文void fillpoly( int number, int *polypoints );各引数の意味は以下の通りです。number:頂点の数を n とした場合、「n + 1」個の点の数を指定します。polypoints:「n × 2」個の整数からなる配列へのポインタです。整数は2つで1組となり、