ページ 11

宣言が正しく終了していないについて

Posted: 2013年9月13日(金) 03:24
by ライアー
とあるプログラム作成中にこれにエラーが発生してしまい困っています
この宣言はあたり判定を計算するやつです。

aやiなどはすべてグローバル変数でちゃんと宣言しています。

int OUT(int a,int i){
if(JT[a].flag!=0){
x1=enemy.x-JT[a].x;
x2=enemy.y-JT[a].y;
x3=enemy.hk+JT[a].hk;
if((x1*x1+x2*x2)<(x3*x3)){
return 1;
}
}
return 0;
}

誰か教えてください

Re: 宣言が正しく終了していないについて

Posted: 2013年9月13日(金) 07:11
by Rittai_3D
コードタグで括って下さい
ライアー さんが書きました:

コード:

int OUT(int a,int i){
	if(JT[a].flag!=0){
		x1=enemy[i].x-JT[a].x;
		x2=enemy[i].y-JT[a].y;
		x3=enemy[i].hk+JT[a].hk;
		if((x1*x1+x2*x2)<(x3*x3)){
			return 1;
		}
	}
	return 0;
}
コード全体とエラーメッセージも載せていただがないと何のエラーが出たのかわかりません。

とりあえず、このコードだけで判断すると、x1,x2,x3が宣言されていないためだと思います。

Re: 宣言が正しく終了していないについて

Posted: 2013年9月13日(金) 07:24
by beatle
ライアー さんが書きました: aやiなどはすべてグローバル変数でちゃんと宣言しています。
なのに引数をint a, int iなどとしたら、名前が被ってしまいます。
OUT関数の内部の変数aはグローバル変数とは違うものなのでご注意ください。
それを知っててわざとやる分には構いませんが。

「宣言が正しく終了していない」ということですが、もしかしてお示しのプログラムより上の箇所にエラーがあり、その影響がOUT関数の部分で現れて、あたかもOUT関数がエラーになっているように見えるだけでは?と思ったりしますが、いかがでしょうか。