エラーが出るのですが・・・

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

エラーが出るのですが・・・

#1

投稿記事 by C.C » 14年前

こんにちは。現在製作中のゲームでタイトル、ゲームクリア、ゲームオーバー、ゲームのメイン画面をswitch文を使って製作中なのですがswitch文に【宣言が必要です】とエラーが出ます。どうしたらよいですか。お願いします。
製作途中のソースを載せます。
game_screen.cpp

コード:

#include "DxLib.h"
#include "game_screen.h"
#include "player.h"

switch(g_gamestate){
case GAME_TITLE:
	DrawGameTitle();
	break;

case GAME_MAIN:
	Player_Update();
	break;

case GAME_CLEAR:
	DrawGameClear();
	break;

case GAME_OVER:
	DrawGameOver();
	break;
}
gamescreen.h
#define DEF_GAME_SCREEN_H

コード:

enum GameState{
	GAME_TITLE,
	GAME_MAIN,
	GAME_CLEAR,
	GAME_OVER
}g_gamestate = GAME_TITLE;

void GoGameTitle();
void DrawGameTitle();
void GoGameMain();
void GoGameClear();
void DrawGameClear();
void GoGameOver();
void DrawGameOver();

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: エラーが出るのですが・・・

#2

投稿記事 by softya(ソフト屋) » 14年前

関数がなくイキナリC言語の命令文があるよう見えますが。

[補足]
前の質問が解決チェックされていないので解決チェックをお願いします。
http://dixq.net/forum/viewtopic.php?f=3&t=10640
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

C.C

Re: エラーが出るのですが・・・

#3

投稿記事 by C.C » 14年前

softya(ソフト屋) さんが書きました:関数がなくイキナリC言語の命令文があるよう見えますが。

[補足]
前の質問が解決チェックされていないので解決チェックをお願いします。
http://dixq.net/forum/viewtopic.php?f=3&t=10640
チェックつけました。すみませんでした

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: エラーが出るのですが・・・

#4

投稿記事 by softya(ソフト屋) » 14年前

解決チェックしてもらえばOKですよ。

関数の件は理解してもらえましたか?
あと気づきましたが、enum変数がヘッダファイル中で実体定義されているのでこのヘッダファイルを複数のcppファイルにインクルードすると多重定義でエラーになります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

C.C

Re: エラーが出るのですが・・・

#5

投稿記事 by C.C » 14年前

softya(ソフト屋) さんが書きました:解決チェックしてもらえばOKですよ。

関数の件は理解してもらえましたか?
あと気づきましたが、enum変数がヘッダファイル中で実体定義されているのでこのヘッダファイルを複数のcppファイルにインクルードすると多重定義でエラーになります。

C.C

Re: エラーが出るのですが・・・

#6

投稿記事 by C.C » 14年前

softya(ソフト屋) さんが書きました:解決チェックしてもらえばOKですよ。

関数の件は理解してもらえましたか?
あと気づきましたが、enum変数がヘッダファイル中で実体定義されているのでこのヘッダファイルを複数のcppファイルにインクルードすると多重定義でエラーになります。

C.C

Re: エラーが出るのですが・・・

#7

投稿記事 by C.C » 14年前

C.C さんが書きました:
softya(ソフト屋) さんが書きました:解決チェックしてもらえばOKですよ。

関数の件は理解してもらえましたか?
あと気づきましたが、enum変数がヘッダファイル中で実体定義されているのでこのヘッダファイルを複数のcppファイルにインクルードすると多重定義でエラーになります。
すみません。間違えて投稿してしまいました。
switchを関数の中に入れて、game_screen.hは一度しか呼び出せない。でいいんでしょうか。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: エラーが出るのですが・・・

#8

投稿記事 by softya(ソフト屋) » 14年前

C.C さんが書きました:switchを関数の中に入れて、game_screen.hは一度しか呼び出せない。でいいんでしょうか。
C言語の制御命令は全て関数である必要があるので、関数の外では変数の宣言・定義以外は行うことは出来ません。
なのでイキナリ命令があることは許されません。

良いか悪いかは私が決めることではありませんが、ヘッダにこのenum定義があったら他のcppでインクルードが出来ないのでヘッダがある意味が無いと思います。
それと他のcppでこのenumの内容を参照することがないのなら、ヘッダにenumを置く必要はないでしょう。game_screen.cppにenumを置けば良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

C.C

Re: エラーが出るのですが・・・

#9

投稿記事 by C.C » 14年前

softya(ソフト屋) さんが書きました:
C.C さんが書きました:switchを関数の中に入れて、game_screen.hは一度しか呼び出せない。でいいんでしょうか。
C言語の制御命令は全て関数である必要があるので、関数の外では変数の宣言・定義以外は行うことは出来ません。
なのでイキナリ命令があることは許されません。

良いか悪いかは私が決めることではありませんが、ヘッダにこのenum定義があったら他のcppでインクルードが出来ないのでヘッダがある意味が無いと思います。
それと他のcppでこのenumの内容を参照することがないのなら、ヘッダにenumを置く必要はないでしょう。game_screen.cppにenumを置けば良いと思います。
ありがとうございます。早速やってみたいと思います。

閉鎖

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