つまり、能力の要素を構造体にまとめて、登場人物の数だけ、 その構造体をデータ型とする変数を宣言するといった方法です。
こうすることで、ある人物の全ての能力値を関数に渡す際、 その構造体をデータ型とする変数を1つ渡すだけで、それが可能 となります。構造体を使っていないと、関数に能力の要素数分 の引数が必要となってしまいます。
int Func(char *name,int hp,int hp_max,int mp,int mp_max,
int lv,int gold,int un,int kiai,int item_no);
これでは混乱を招いてしまいます。そこで、以下のように、
typedef struct{
char *name;
int hp;
int hp_max;
int mp;
int mp_max;
int lv;
int gold;
int un;
int kiai;
int item_no;
}zinbutsu;
といった構造体を用意しておけば、関数側は、
int Func(zinbutsu who);
だけで済んでしまうのです。
つづく。