teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

解説の追加

2016/04/06 02:29

投稿

aloha001
aloha001

スコア14

answer CHANGED
@@ -3,4 +3,10 @@
3
3
 
4
4
  ところで、コールバックは、簡単に言うと、電話をかけてかけた相手に電話番号だけを伝えて、あいてのタイミング=イベントで電話をかけ直してもらうことです。
5
5
 
6
- つまり、エントリーアドレス等を相手の関数に情報として与えておき、何かのイベントで、関数コールしてもらう仕組みです。Windowsなどは、この仕組の塊のようなものです。
6
+ つまり、エントリーアドレス等を相手の関数に情報として与えておき、何かのイベントで、関数コールしてもらう仕組みです。Windowsなどは、この仕組の塊のようなものです。
7
+
8
+ クロージャーはC言語で表現するのはかなりめんどうなので、ジャバスクリプトなどでやった方が良いですね。
9
+  
10
+ しかし、スコープとコードエリアの関係を理解できればCでも表現できるかもしれません。
11
+  
12
+ 例えば、C++では好きな場所で変数宣言できますが、実はCでもスコープとエリアを駆使して内部関数エリアをつくることができるのです。昔のコンパイラはC++もCのソースに変換してCでコンパイルしたので、できてあたりまえではありますけれど。