ページ 11

構造体でエラーが発生します

Posted: 2014年4月21日(月) 17:12
by amehirune
こんにちは。今回も行き詰ったので、ここで質問させていただきます。
今回お聞きしたいのは、structをつかった構造体に関する質問です。

龍神録プログラムを組み立てる最中、新規cppファイル・menu.cppで、
メニュー画面を作成して…とやる予定でしたが、作成途中でエラーが発生したので質問させてください。
デバックは、プロジェクトメンバー全員や、同じ部活の先輩たちと行いましたが、
エラーは直せませんでした。どうか、よろしくお願いします。

[hr]↓menu.cpp

コード:

#include "../include/GV.h"

#define MENU_MAX 10;

struct Menu{
	int		x;
	int		y;
	char	name[20];
};

void GAME_TITLE(void){

	static int select;

	struct Menu Select_Menu[]={
		{ 220, 300, "Game Start"},
		{ 250, 350, "Extra Start"},
		{ 250, 400, "Music Loom"},
		{ 250, 450, "Option"},
		{ 250, 500, "Exit"},
	};

	DrawGraph(0,0,img_menu[0],FALSE);
	DrawGraph(0,0,img_menu[10],TRUE);

	for(int i=0; i<MENU_MAX; i++ ){ // メニュー項目を描画
		DrawFormatString( Select_Menu[i].x, Select_Menu[i].y, GetColor(255,255,255), Select_Menu[i].name );
	}


}
↓エラーメッセージ

コード:

menu.cpp(26) : error C2146: 構文エラー : ')' が、識別子 'i' の前に必要です。
menu.cpp(26) : error C2059: 構文エラー : ';'
menu.cpp(26) : error C2059: 構文エラー : ')'
menu.cpp(26) : error C2143: 構文エラー : ';' が '{' の前にありません。
menu.cpp(27) : error C2065: 'i' : 定義されていない識別子です。
menu.cpp(27) : error C2228: '.x' の左側はクラス、構造体、共用体でなければなりません
menu.cpp(27) : error C2065: 'i' : 定義されていない識別子です。
menu.cpp(27) : error C2228: '.y' の左側はクラス、構造体、共用体でなければなりません
menu.cpp(27) : error C2065: 'i' : 定義されていない識別子です。
menu.cpp(27) : error C2228: '.name' の左側はクラス、構造体、共用体でなければなりません
[hr]

エラー表示の行数より前のアドレスは省略させていただいております。
原因と、よければ改正の仕方をお教えしていただければ幸いです。

Re: 構造体でエラーが発生します

Posted: 2014年4月21日(月) 18:02
by Mana
とりあえず3行目に問題があるのは分かった。

Re: 構造体でエラーが発生します

Posted: 2014年4月21日(月) 19:50
by Hiragi(GKUTH)
3行目です。
#defineで最後にセミコロン要りません。

コード:

#include <stdio.h>

#define TEST 10;

int main()
{
	printf("%d\n", TEST);
	return 0;
}
エラー 1 error C2143: 構文エラー : ')' が ';' の前にありません。 e:\users\hiragi\documents\visual studio 2013\projects\cui\cui\main.cpp 7 1 CUI
エラー 2 error C2059: 構文エラー : ')' e:\users\hiragi\documents\visual studio 2013\projects\cui\cui\main.cpp 7 1 CUI
3 IntelliSense: ')' が必要です e:\Users\Hiragi\Documents\Visual Studio 2013\Projects\CUI\CUI\Main.cpp 7 17 CUI
4 IntelliSense: 式が必要です e:\Users\Hiragi\Documents\Visual Studio 2013\Projects\CUI\CUI\Main.cpp 7 21 CUI

Re: 構造体でエラーが発生します

Posted: 2014年4月21日(月) 19:51
by softya(ソフト屋)
#define は定数定義ではなく置き換えマクロだと理解するとミスが減ると思います。
エディタの置換と同じ動作をしますので、「MENU_MAX」を「10;」に置換します。

Re: 構造体でエラーが発生します

Posted: 2014年4月22日(火) 12:59
by amehirune
本当でした、凡ミスでしたね><;
おかげでバグを直すことができました。
エラー文章から、構造体のほうにミスが出ているのかと…
softyaさん、アドバイスありがとうございます。
皆さん、本当にありがとうございました。
今後とも質問させていただく機会があると思いますが、
そのたびはまたよろしくお願いいたします。