構造体について

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

構造体について

#1

投稿記事 by ひよこ » 16年前

構造体についてゲームプログラムの館18章の構造体でキャラクタデータを作るで
typedef struct{
	int x,y,img;
}ch_t;
でch_tという名前のx,y,imgができあがるって書いてあるんですが
ch.x、ch.yとプログラムにはあるのはどうしてでしょうか?
さらにch_t ch;というのはどういう意味でしょうか?

TOMONORI

Re:構造体について

#2

投稿記事 by TOMONORI » 16年前

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:構造体について

#3

投稿記事 by ひよこ » 16年前

ch_t型の変数chと内容物のx,y,imgを組み合わせてch.x,ch.yとなるのですね

TOMONORI

Re:構造体について

#4

投稿記事 by TOMONORI » 16年前

組み合わせる・・・まあ、そうですね。
基本的に何かの中身を参照する場合に.(ピリオド)を使うと考えておけば
いいと思います。

ひよこ

Re:構造体について

#5

投稿記事 by ひよこ » 16年前

プログラムの意味はわかりました。TOMONORIさんありがとうございました。

閉鎖

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