タスクシステム総合スレ part2at GAMEDEV
タスクシステム総合スレ part2 - 暇つぶし2ch58:名前は開発中のものです。
07/12/15 22:33:07 dW/LIK6y
>>44
説明しよう!

>コールバック=何かをきっかけに呼び出される
まさにその通りだ!!
コールバック関数とは関数ポインタを呼び出し側に登録しておき
適宜呼び出される方式だ
この方式はタスクシステムにも採用されている

タスクヘッダには初期値としてタスクエンド(Cでは大抵NULLだろう)を示すポインタが入っている
図1.タスクヘッダ → タスクエンド

ここにタスクを登録していくことで呼び出される関数が増えていく

図2.タスクヘッド → タスク1 → タスク2 → タスクエンド

こうして生成されたタスクリストのタスクはタスクループで順番に呼び出されていく

図3.タスクループ
     ↓
   タスクヘッド → タスク1 → タスク2 → タスクエンド

以上のような構造からタスクシステムはコールバック関数であるといえる


コールバック関数に比べてタスクシステムを特徴づけているのは次の3点だ

  1.呼び出し側と呼び出され側が1対多である
  2.呼び出し側は機能を持たない
  3.呼び出され側がさらに呼び出され側を登録することができる

以上の特徴により、動的に機能を拡張し、相互に連携することが可能になったのである


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch