MNAの世界

ブログをリニューアルしました!コメント、リンク、ツイートなどはお気軽にどうぞ。

PC、技術系

気の利くコンパイラ

投稿日:2006年3月29日 更新日:

仕事でコードレビュー(C言語)をやっているとこんなコードを発見!

if(0 <= 変数名 <= 12) { ~ 処理 ~ }

この記述そのものに関しては、初心者が時々やる それほど珍しくは無い間違いですが、それよりも気になるのは しっかりコンパイルが通っていると言うことです。
そして、変換されたアセンブラコードを見ると この判定自体が取り除かれており、中の処理が必ず行われるようになっていたのです。

これはつまりこう言うことでしょうか。

「0 <= 変数名」が先に評価された場合、結果は 0 か 1。 つまり、「0 <= 12」も「1 <= 12」も必ず成立するために常に真となる。 よって、判定は取り除かれた。 「変数名 <= 12」を先に評価するとしても同様。

な、なるほど!
そう考えると文法的にも辻褄が合うような気がします。
でもこれってどう考えても意図した動作じゃないよな・・・

-PC、技術系


comment

リンクが多数含まれていると表示されないのでご注意ください。(スパム対策)

関連記事

複合機 EP-802A をセットアップしてみた

この間買った複合機 EP-802Aが届きました!!! 届いたのは昨日だけど、いつの間にか寝落ちしてたのでセットアップはこれからです。 こうしてみるとなかなかの存在感です。 炊飯器を置いてあるラックに押… 続きを読む

intel さくまドロップ

会社で組み込み開発技術展とやらに行って来た人が大量の戦利品を仕入れてきました。 早い者勝ちで貰えると言うことで、当方が貰ったのはこれ、「intel さくまドロップ」。 これを食べると頭がクロックアップ… 続きを読む

no image

PCが やっぱり 不調

徳島から戻ってきてPCの電源を入れてみると・・・ やはりこの間のなかなか立ち上がらない症状に戻ってるorz これはもう諦めて新しいマシンを仕入れることにします。 このままでは精神衛生上良くなさそうです… 続きを読む

no image

W51SH 発表!

auに待望のAQUOS携帯 W51SH が登場するようです! SHARPのau参入第一弾の W41SH は店頭で実機を見る限りちとイマイチっぽかったので見送っていたのですが、今度こそ乗り換えの時が来た… 続きを読む

no image

PC98ご乱心

うちのV166様があまりに放置されていたためかご乱心。 電源が勝手についたり消えたりするようになりました! なんか最近HDのアクセス音みたいなのがどこからか聞こえてくるなぁと思っていたのですが・・・ … 続きを読む