« 久しぶりの講義 | メイン | マウスパッドから給電するマウス »
2006年01月11日
演算子の優先順序
細かいことだが、ビット単位でデータを扱うとき、論理積をとった結果を比較する、ということをよくやる。たとえばこんなかんじ。
-----
if ((a & 0x01) == 0)...
-----
ところが、論理積&と、等しいかの比較==は、==のほうが演算子の優先順序が、1つだけ高い。
http://www.u-gakugei.ac.jp/~miyadera/LECTURE/ElecBook2/ptech12.htm
ということは、カッコを1個省略して、こんなかんじで書くと、だめなわけだ。
-----
if (a & 0x01 == 0)...
-----
ビミョーだけど、けっこうハマりやすそうだな。
投稿者 akita : 2006年01月11日 11:27
トラックバック
このエントリーのトラックバックURL:
http://akita11.jp/mt/mt-tb.cgi/435
コメント
ですよね、はまりますよね。
ということで私は何でも括弧でくるむようにしてます。
ある程度優先順序がわかりやすくても。
括弧がすこし増えますが却ってわかりやすいかなと。
投稿者 もー : 2006年01月12日 23:57
ええ、学生にもそのように指導しています>括弧の多用
投稿者 akita : 2006年01月13日 07:40