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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ライアー
記事: 12
登録日時: 12年前

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

#1

投稿記事 by ライアー » 12年前

とあるプログラム作成中にこれにエラーが発生してしまい困っています
この宣言はあたり判定を計算するやつです。

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;
}

誰か教えてください

Rittai_3D
記事: 525
登録日時: 12年前

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

#2

投稿記事 by Rittai_3D » 12年前

コードタグで括って下さい
ライアー さんが書きました:

コード:

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が宣言されていないためだと思います。
初心者です

beatle
記事: 1281
登録日時: 13年前
住所: 埼玉
連絡を取る:

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

#3

投稿記事 by beatle » 12年前

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

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

閉鎖

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