再定義

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

再定義

#1

投稿記事 by 釣り師 » 15年前

龍神録プログラミングで学習中です
typedef structで構造体を定義し。
定義したヘッダファイルをインクルードしたヘッダで、
ch_t ch;としたのですが、実行しようとすると、再定義されています。
などとエラーが出てコンパイルできません。
原因としては、何が考えられるでしょうか。

<struct.h>
typedef struct{
double x;

int shot_cnt;
}ch_t;

<define.h>
//フィールドの広さ
#define FIELD_MAX_X 500
#define FIELD_MAX_Y 560

//フィールド左上座標
#define FIELD_X 40
#define FIELD_Y 40

//パッド最大数
#define PAD_MAX 16

#include "struct.h"

<GV.h>
#include "DxLib.h"
#include "define.h"
#include "math.h"

#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL extern
#endif

#include "function.h"

//構造体の宣言
GLOBAL ch_t ch; //キャラの各種データ

あ~る

Re:再定義

#2

投稿記事 by あ~る » 15年前

書いてあるまんま、どこかでもう定義してあるとかじゃないでしょうか?
検索機能などでchを検索したりしみたらあったりしません?
もし違うなら僕にはわかりませんすいません、

釣り師

Re:再定義

#3

投稿記事 by 釣り師 » 15年前

回答ありがとうございます。

検索をかけてみたのですが、そうではないようです。

fatens

Re:再定義

#4

投稿記事 by fatens » 15年前

エラーメッセージをそのまま貼ってみてください。

釣り師

Re:再定義

#5

投稿記事 by 釣り師 » 15年前

1>c:\users\\documents\visual studio 2008\projects\first\struct.h(16) : warning C4094: タグのない 'struct' がシンボルなしで宣言されています。
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(14) : error C2146: 構文エラー : ';' が、識別子 'ch' の前に必要です。
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(14) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(14) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(14) : error C3872: '0x3000': この文字を識別子で使用することはできません
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(15) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(15) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(15) : error C2146: 構文エラー : ';' が、識別子 'configpad' の前に必要です。
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(15) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(15) : error C2377: 'configpad_t' : 再定義されています。typedef は他のどのシンボルでもオーバーロードできません
1> c:\users\chihiro\documents\visual studio 2008\projects\first\struct.h(27) : 'configpad_t' の宣言を確認してください。
1>c:\users\\documents\visual studio 2008\projects\first\gv.h(15) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(4) : error C2228: '.cnt' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(5) : error C2228: '.graph_i' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(5) : error C2228: '.cnt' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(15) : error C2228: '.left' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(15) : error C2228: '.right' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(16) : error C2228: '.down' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(16) : error C2228: '.up' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(30) : error C2228: '.x' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(30) : error C2228: '.y' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(32) : error C2228: '.slow' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(37) : error C2228: '.x' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。
1>c:\users\\documents\visual studio 2008\projects\first\char.cpp(37) : error C2228: '.y' の左側はクラス、構造体、共用体でなければなりません
1> 型は 'int' です。


こんな感じです。

fatens

Re:再定義

#6

投稿記事 by fatens » 15年前

とりあえず、function.hの最後に ; を付け忘れていないか確かめてください。
また、GV.hに全角スペースが含まれている可能性があるので、あれば消してください。

釣り師

Re:再定義

#7

投稿記事 by 釣り師 » 15年前

;は必要なところ全てについていましたし、全角スペースも1つもありませんでした。

なんでこんなエラーになったんでしょうか。
何もしてないはずなのに…

釣り師

Re:再定義

#8

投稿記事 by 釣り師 » 15年前

解決いたしました!

全角スペースが2つほど紛れ込んでいたようです!
気が付きませんでした。

みなさんありがとうございます!

閉鎖

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