ページ 11

龍神録プログラミングの館で

Posted: 2013年7月25日(木) 08:38
by manekin
C言語初心者です。
こちらのサイトで勉強しながらSTG作っていますが
キーコンフィグに対応させてみようで

コード:

typedef struct{
	    int flag;        
		int cnt;         
		int power;      
		int point;       
		int score;       
		int num;         
		int mutekicnt;   
		int shot_mode;   
		int money;       
		int img;         
		int slow;        
		double x,y;      
}ch_t;

typedef struct{
	    int key[PAD_MAX];
}pad_t;

typedef struct{
	    int left,up,right,down,shot,bom,slow,start,change;
}configpad_t;
って書いたのですが

コード:

PAD_MAX
が定義されていないと指摘されました。
何か抜けているのでしょうか

コード:

GetJoypadInputState
もよくわかりません。

Re: 龍神録プログラミングの館で

Posted: 2013年7月25日(木) 09:00
by Rittai_3D
define.hをインクルードしてますか?

Re: 龍神録プログラミングの館で

Posted: 2013年7月25日(木) 09:36
by manekin
define.hファイルでstruct.hを#includeしています。
struct.hファイルでは#includeをつけていません。

Re: 龍神録プログラミングの館で

Posted: 2013年7月25日(木) 09:58
by Rittai_3D
manekin さんが書きました:define.hファイルでstruct.hを#includeしています。
struct.hファイルでは#includeをつけていません。
struct.h をインクルードして見てください。

Re: 龍神録プログラミングの館で

Posted: 2013年7月25日(木) 10:01
by usao
ヘッダファイル名を書かれても文面からは意味が分からないような気がしますが…
(仮に,参考にされているページにてそのファイル名が使われているのだとしたら
 そのページへのリンクを示すとかするとわかりやすいのではないでしょうか)

とりあえず,PAD_MAXが定義されているヘッダファイルを見つけて,
あなたが構造体を3つ書いたコードにてincludeすればよいと思います.
オフトピック
何で無名構造体…? とか思ったら,どうやら参考にされているらしき場所で既にそういう書き方がされているんですね.
typedef struct { ... } ch_t;
のようにわざわざ無名にすることで何かメリットがあるのか私は知りませんが,
前方宣言ができないというデメリットがあることだけは確かなので,私なら
typedef struct ch_t { ... } ch_t;
のような書き方を推奨します.

Re: 龍神録プログラミングの館で

Posted: 2013年7月25日(木) 20:53
by softya(ソフト屋)
PAD_MAXが定義されていない、あるいは順番の関係で未定義と見做されていると思います。
C/C++の場合は先に宣言されていないと無いものとして見做されるので注意して下さい。
オフトピック
ここの龍神録が無名構造体が多用されているのが原因ですね。
前方宣言は、初心者だと混乱するので使わないで済むならいらなかなって気もします。

Re: 龍神録プログラミングの館で

Posted: 2013年7月26日(金) 08:21
by manekin
PAD_MAXは一応定義されましたが。

'ch_t' : 再定義されています。異なる基本型です。
をどうすればいいかわかりません。

Re: 龍神録プログラミングの館で

Posted: 2013年7月26日(金) 08:29
by manekin
ch_t も無事解決できました。
みなさんありがとうございました^^

Re: 龍神録プログラミングの館で

Posted: 2013年7月26日(金) 08:30
by manekin
次に何かありましたらまたよろしくです。