YU2TA7KA's BLOG

派生開発、組み込み開発周りのこと。

5分でなんとなくわかるコールバック関数

コールバック関数の考え方ってイメージしにくくありませんか?私はうまくイメージできていませんでした。そこでイメージ図にまとめてみました。この図でなんとなくコールバック関数がわかるような気がします。

コールバック関数のイメージ図

f:id:yuji-tanaak:20190106073920p:plain

解説

コールバック関数とは他の関数に引数として渡す関数です*1。そして、コールバック関数を利用する関数をハンドラ関数と呼びます。
イメージ図では、1回目のhandler()ではcallback_Aが実行され、2回目はcallback_B()が実行されます。ハンドラ関数に渡す関数ポインタによって実行するコールバック関数を動的に変更することが可能になります。

おわりに

コールバック関数の考え方が最近なんとなくわかった気がしていたので、図にまとめてみました。コールバック関数に関連して、関数ポインタとハンドラ関数の考え方を抑えておくと理解ができる気がします。そして、コールバック関数を利用してやりたいことは、ハンドラ関数内で「実行する関数を引数によって操作する」ということです。