構造体のプログラムの意味

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

構造体のプログラムの意味

#1

投稿記事 by 質問者 » 15年前

急な質問失礼します。
ゲームを作る前に構造体などの意味を理解しようとサンプルを見ていたのですが
よくわからないところが出てきて困っています。

typedef struct{
double x,y;
int status,counter;
int shot [11][15];
} BODY_player_t;

extern BODY_player_t Player;

このソースの
BODY_player_t;
extern BODY_player_t Player;

の意味がよくわかりません。
どなたか教えていただけませんか?

softya

Re:構造体のプログラムの意味

#2

投稿記事 by softya » 15年前

C言語のtypedefの文法的な意味はご存知でしょうか?
まず、それを調べてみて下さい。

あと、今後質問なさるのでしたら、名前は個性的なものに変えた方が良いかと思います。
http://www.play21.jp/board/ranking.cgi?id=dixq
名前がバッティングしない様に、こちらをチェックして下さいね。

たかぎ

Re:構造体のプログラムの意味

#3

投稿記事 by たかぎ » 15年前

> 意味がよくわかりません。

言語仕様上の意味なのか、そのアプリケーションにおける意味なのか、どちらでしょうか?
言語仕様上の意味であれば、

> BODY_player_t;

型名として定義される識別子

> extern BODY_player_t Player;

BODY_player_t型のオブジェクトPlayerの宣言
ただし、extern記憶クラス指定子がついているので、Playerは外部結合

アプリケーションにおける意味であれば、これだけを見ても何とも回答のしようがありません。

non

Re:構造体のプログラムの意味

#4

投稿記事 by non » 15年前

もう少し、具体的にいいますと・・・
typedefは、自分がわかりやすいように、型を定義するのに使用します。
例えば、
typedef unsigned char BYTE;
とすれば、unsigned char という型をBYTEという型で表せるということです。
今回は、それが構造体になっているだけ。

extern BODY_player_t Player;
Playerという名前の変数の実体が他の場所で確保されているよということを、コンパイラに示している。
たぶん、一般的には、ファイルが複数に分かれていて、別のファイルで実体が確保されている。
だけど、このファイルでもPlayerという変数を扱うけど、いいよねと示している。

dic

Re:構造体のプログラムの意味

#5

投稿記事 by dic » 15年前

>意味がよくわかりません。
何を知りたいのですか
回答しようがないです

りまぶぅ

Re:構造体のプログラムの意味 質問者

#6

投稿記事 by りまぶぅ » 15年前

回答ありがとうございました。
確かによくわからない質問だったと思います。
もう少し調べてみます

ムンバ

Re:構造体のプログラムの意味 質問者

#7

投稿記事 by ムンバ » 15年前

こんばんはっ!

構造体について、私は
http://homepage3.nifty.com/mmgames/c_guide/index.html
の、「16.複数の型をまとめる」を、参照させて頂いてます。
以前に、この掲示板で、ご紹介頂いたページです。

りまぶぅさんは、「構造体」と「extern」の関係について
知りたいと言う事ですよね?

ムンバ

Re:構造体のプログラムの意味 質問者

#8

投稿記事 by ムンバ » 15年前

私は、しょっちゅう的外れな事を質問したり、勘違いな事を言ったりしてるので
うまく伝わらなければ、大変申し訳ないのですが・・・。<(_ _)>

No:47225のスレッドの、りまぶぅ(質問者)さんの質問の様な質問を
以前に、こちらでさせて頂いた事があったと思います。
頭が悪いので、うろ覚えですが。^^;

---↓編集部位---

初級者さん、ご指摘ありがとうございます。
「うる覚え」→「うろ覚え」に訂正させて頂きました。

---↑編集部位---

>確かによくわからない質問だったと思います。
だから、質問されたのではないのですか?
画像

初級者

Re:構造体のプログラムの意味

#9

投稿記事 by 初級者 » 15年前

誤:うる覚え
正:うろ覚え

閉鎖

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