"再定義されています"というエラーが....

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

"再定義されています"というエラーが....

#1

投稿記事 by yux » 15年前

いつもお世話になってます。Xです。(^0^)

今、キーボードだけでなく、パッドも使えるようにしています。

すると、
"error C2371: 'ch_t' : 再定義されています。異なる基本型です。"
というエラーが、back_t,music_t....とたくさん出てきます。

環境:WindowsXP HomeEdition
VisualC++2008ExpressEdition

ソースです-------------------------------------

まず構造体の宣言の関数が入っているstruct.h-----------------------------------------------

#include "../head/define.h"

//主人公に関する構造体
typedef struct{
int x ,y ,img ,muki ,walking_flag;
}ch_t;

//背景に関する構造体
typedef struct{
int x,y,img,muki,walking_flag;
}back_t;

//音楽に関する構造体
typedef struct{
int music;
}music_t;

//タイトルに関する構造体
typedef struct{
int img ,x, y;
int menu_img[2], menu_x[2],menu_y[2];
int arrow_img ,arrow_x ,arrow_y;
}title_t;

//パッドに関する構造体
typedef struct{
int key[PAD_MAX];
}pad_t;

//コンフィグに関する構造体
typedef struct{
int left,up,right,down,shot,bom,slow,start,change;
}configpad_t;
---------------------------------------------------------------------------------



で、グローバル関数を定義している、global.hは、------------------------------------------

#ifdef GLOBAL_INSTANCE

#define GLOBAL

#else

#define GLOBAL extern

#endif


GLOBAL char Key[256]; //GetHitKeyStateAllに使う配列

GLOBAL ch_t ch;
GLOBAL back_t bc;
GLOBAL music_t ms;
GLOBAL configpad_t configpad;


GLOBAL void GetHitPadStateAll(void);
GLOBAL int CheckStatePad(unsigned int Handle);

です。

  何か変なところがあったり、載せて欲しいソースがありましたら、教えてください。(__)

  長くなってしまいました。すみません。 画像

fatens

Re:

#2

投稿記事 by fatens » 15年前

エラーを正確にコピーしてもらわないと分かりませんが、
おそらく struct.h の #include "../head/define.h" のせいです。

yux

Re:

#3

投稿記事 by yux » 15年前

正確には、
------ ビルド開始: プロジェクト: DinosaurX, 構成: Debug Win32 ------
コンパイルしています...
key.cpp
main.cpp
g:\プログラミング\teamx\dinosaurx\head\struct.h(5) : error C2371: 'ch_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(5) : 'ch_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(9) : error C2371: 'back_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(9) : 'back_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(13) : error C2371: 'music_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(13) : 'music_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(20) : error C2371: 'title_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(20) : 'title_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(25) : error C2371: 'pad_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(25) : 'pad_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(30) : error C2371: 'configpad_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(30) : 'configpad_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(5) : error C2371: 'ch_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(5) : 'ch_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(9) : error C2371: 'back_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(9) : 'back_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(13) : error C2371: 'music_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(13) : 'music_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(20) : error C2371: 'title_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(20) : 'title_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(25) : error C2371: 'pad_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(25) : 'pad_t' の宣言を確認してください。
g:\プログラミング\teamx\dinosaurx\head\struct.h(30) : error C2371: 'configpad_t' : 再定義されています。異なる基本型です。
g:\プログラミング\teamx\dinosaurx\head\struct.h(30) : 'configpad_t' の宣言を確認してください。
コードを生成中...
ビルドログは "file://g:\プログラミング\TeamX\DinosaurX\Debug\BuildLog.htm" に保存されました。
DinosaurX - エラー 12、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

です。

define.hについては、いじってみましたが、結果は同じでした。

シエル

Re:

#4

投稿記事 by シエル » 15年前

struct.hのコードを

#ifndef STRUCT_H
#define STRUCT_H




#endif


で囲めばいいのでは?

yux

Re:

#5

投稿記事 by yux » 15年前

出来ました!!
ありがとうございます!

でも、今度は、リンクのときにエラーが出たので、新しくスレを立てます。

閉鎖

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