ページ 11

タスク処理の記述について

Posted: 2007年11月09日(金) 00:16
by りょうちん
たびたびすいません。いつもお世話になっています。
シューティングゲームの弾の処理にタスクリストを使いたいのですが、参考にしている本を読むと

構造体の処理関数へのポインタに

void (*Func)(TASK* task);

のように書かれているのですが、これはどういった意味なのでしょうか?
借りているC/C++等の辞典にものってなくて困っております。
意味と使い方等を、できたら詳しく教えてください。お願いします

Re:タスク処理の記述について

Posted: 2007年11月09日(金) 02:16
by Justy
> void (*Func)(TASK* task);
> これはどういった意味なのでしょうか
 TASK型のポインタを引数とし戻り値なしの関数へのポインタです。
 引数と戻り値が一致した関数なら、そのポインタをそのメンバ Funcに代入することができます。
[color=#d0d0ff" face="monospace]#include <stdio.h>

struct TASK
{
    int val;
    void (*Func)(TASK* task);
};

void TestTask(TASK *task)
{
    if(task)
        printf("task->val = %d\n", task->val);
}

int main()
{
    TASK task;
    task.val = 2;
    task.Func = &TestTask;
    (*task.Func)(&task);
    return 0;
}
[/color]

> 使い方等を、できたら詳しく教えてください
 使い方に関しては、タスクシステムはいろんな種類(私も2種類作ったことがあります)が
存在するので、ソース開示して頂かないとこれ以上は判りません。

Re:タスク処理の記述について

Posted: 2007年11月09日(金) 12:49
by りょうちん
分かりやすい例まで載せていただいて、本当にありがとうございます。