Callback関数を知らん人がまず理解すべきことのまとめ。
未だにへっぽこプログラマーの私が、「Callback関数なにそれ美味しいの?」状態から、 Callback関数、「それはとっかえひっかえされる関数だお(キリッ」ってなるまでにとった行動のまとめ。 ちなみに私、C言語とPythonくらいしか喋れませんので、今回はC言語に特化した内容でお送りします。 ※Webから漁ってきた情報から手っ取り早くまとめたものなので間違いもあると思われます。間違った点はゴリゴリ指摘していただけるとマンモスウレピーです。 Callback関数とは? ■プログラム中で、呼び出し先の関数の実行中に実行されるようにあらかじめ指定しておく関数( IT用語辞典 より引用) 初心者が読んでもわけわかめだと思います。いきなり定義が頭に入る奴なんていません。 これはまだマシな方で Wikipediaの解説 なんてクソイミフです。 アホだと自覚してる私は読む気さえ起きません。 完全理解は無理で、ある程度の理解水準に素早く到達して、 「とりあえず実装できる」状態になりましょう。 その後、徐々に理解を深めていく方が学習は早いです。 ここでは3段階で解説して、「とりあえず実装できる」状態になりましょう。 Callback関数を理解するためには、 1:ポインタの理解、2:関数ポインタの理解、3:callback関数のメリットと実装方法 を学ぶ必要があります。 1:ポインタとは? C言語入門者を悩ませるポインタです。 まずは軽くポインタって何?ってところから。 ポインタ⇔指す人ってわけで、C言語の入門書では以下の様なコメントが書かれてます。 int *p; // int型を変数を 指す ポインタ int data; // int型の変数 p = &data; // pはdataを 指す 1行目: いつも「指す」って何やねんってなります。 私は、 ポインタはアドレスを格納する変数 だと思ってます。 だからpはアドレスを格納するための変数です。 指すとか意味分かんないからアドレスを格納するただの変数だと思うのです。 2行目: int data; って書いた瞬間に、メモリ上でプログラム...
コメント
コメントを投稿