コールバック(英: Callback)とは、プログラミングにおいて、他のコードの
引数として渡されるサブルーチンである。これにより、低レベルの抽象化層が高レベルの層で定義されたサブルーチン(または
関数)を呼び出せるようになる。
一般に、まず高レベルのコードが低レベルのコードにある
関数を呼び出すときに、別の
関数への
ポインタや
ハンドルを渡す。低レベルの
関数を実
行中に、その渡された
関数を適当な回数呼び出して、部分
タスクを実
行する場合もある。別の方式では、低レベル
関数は渡された
関数を「ハンドラ」として登録し、低レベルの層で
非同期的に(何らかの反応の一部として)後で呼び出すのに使う。
コールバックは、
ポリモーフィズムとジェネリックプログラミングの単純化された代替手法であり、ある
関数の正確な動作は、その低レベル
関数に渡される
関数ポインタ(ハンドラ)によって変わってくる。これは、コード再利用の非常に強力な技法と言える。