ページ 11

構造体について

Posted: 2009年3月09日(月) 10:37
by ひよこ
構造体についてゲームプログラムの館18章の構造体でキャラクタデータを作るで
typedef struct{
	int x,y,img;
}ch_t;
でch_tという名前のx,y,imgができあがるって書いてあるんですが
ch.x、ch.yとプログラムにはあるのはどうしてでしょうか?
さらにch_t ch;というのはどういう意味でしょうか?

Re:構造体について

Posted: 2009年3月09日(月) 11:27
by TOMONORI
typedef struct{
  int x, y, img;
}ch_t;
というのは、
struct ch_t{
  int x, y, img
};
とほぼ同じで新しい"型"(intやdoubleの仲間)を創ります。
前者で作り出される型の名前は"ch_t"、後者では"struct ch_t"となります。
前者の場合ch_tは型の名前なので、
ch_t ch;
とすることでch_t型の変数chを宣言できます。
ch_t型は内容物としてint型の変数x, y, imgを持っています。
ch.xとはch_t型である変数chの持っている変数xの意味です。

構造体を自分で定義してみたりすると、もっと見通しのよい理解が得られると思います。

Re:構造体について

Posted: 2009年3月09日(月) 11:38
by ひよこ
ch_t型の変数chと内容物のx,y,imgを組み合わせてch.x,ch.yとなるのですね

Re:構造体について

Posted: 2009年3月09日(月) 13:14
by TOMONORI
組み合わせる・・・まあ、そうですね。
基本的に何かの中身を参照する場合に.(ピリオド)を使うと考えておけば
いいと思います。

Re:構造体について

Posted: 2009年3月09日(月) 13:24
by ひよこ
プログラムの意味はわかりました。TOMONORIさんありがとうございました。