HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0127
=,=右辺、左辺が等しいはずなのに0を返す3解決


=,=

リンク

2007/1/27(Sat) 15:04:58|NO.5214

右辺にあたるcommandoと、左辺にあたるPlayerCommando@&jが等しいはずなのに0を返してしまいます。
何故でしょうか。

#module
#defcfunc Commandoin int commando, int long j=0xFFFFFFFF<<long*2^0xFFFFFFFF if commando==PlayerCommando@&j : return 1 dialog " "+commando+"="+(PlayerCommando@&j) return 0 #global PlayerCommando=-318768148 dialog Commandoin(236,4) PlayerCommando=-319290644 dialog Commandoin(236,4)



この記事に返信する


KIMU

リンク

2007/1/27(Sat) 15:56:04|NO.5215

プログラミング・マニュアルから
>式の評価では、以下の演算子の中で優先順位が高いものを優先します。
> *,/ 4 高い
> +,- 3
> <<,>> 2
> 比較演算子 1
> &,|,^ 0 低い
って、あるので
> if commando==PlayerCommando@&j : return 1
だと、& より = が先に処理されます。
先に処理したい式を () で囲んでください。



=,=

リンク

2007/1/27(Sat) 16:03:31|NO.5216

そんな所に原因があったとは…
やっぱり基礎は大事ですね。ありがとうございます。



=,=

リンク

2007/1/27(Sat) 16:04:06|NO.5217

チェックを忘れました



ONION software Copyright 1997-2023(c) All rights reserved.