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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
りょうちん

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

#1

投稿記事 by りょうちん » 18年前

たびたびすいません。いつもお世話になっています。
シューティングゲームの弾の処理にタスクリストを使いたいのですが、参考にしている本を読むと

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

void (*Func)(TASK* task);

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

Justy

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

#2

投稿記事 by Justy » 18年前

> 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:タスク処理の記述について

#3

投稿記事 by りょうちん » 18年前

分かりやすい例まで載せていただいて、本当にありがとうございます。

閉鎖

“C言語何でも質問掲示板” へ戻る