warning: ‘&&’ within ‘||’ 警告:a||b&&cはa||(b&&c)と同じで(a||b)&&… 続きを読む 【C言語】
論理演算子a||b&&cの
結合規則と評価順序は別
タグ: 演算子
【C言語】
【C言語】
論理否定演算子!の
よくある間違い
if(!x==0){if(!x & y);}
warning: logical not is only applied to the left hand side of this comparison 警告:!の結合力は==よりも強い[-Wlogical-not-p… 続きを読む 【C言語】
論理否定演算子!の
よくある間違い
if(!x==0){if(!x & y);}
【C言語】
sizeof演算子は関数ではない
strlen()でもない
■1.sizeof演算子は関数ではない sizeof演算子を関数だと思っている人は結構多く、この人達は【sizeofの戻り値】って書くのだけれど、1+1の戻り値って言わないですよね。 聖典プログラミング言語C A7.4.… 続きを読む 【C言語】
sizeof演算子は関数ではない
strlen()でもない
【C言語サンプル】
素数の求め方
(剰余演算子%の使い方)
2は偶数だけれど素数 2は偶数だけれど素数なので2の偶数判定をループの外に出すと若干高速になります。
【C言語】
sizeof演算子のよくある間違い
warning: suspicious usage of ‘sizeof(sizeof(…))’ 警告:’sizeof(sizeof(…))’ の疑わしい使用法。[misc… 続きを読む 【C言語】
sizeof演算子のよくある間違い
【C言語】
簡潔な式を書く時
三項演算子?:は便利
warning: operator ‘?:’ has lower precedence than ‘|’; ‘|’ will be evaluate… 続きを読む 【C言語】
簡潔な式を書く時
三項演算子?:は便利
【C言語】
ビット演算子の不一致 (bitwise,bitmask,bit pattern)
■1.bitwise comparison always evaluates to true ■2.bitwise comparison always evaluates to false ■3.Mismatching … 続きを読む 【C言語】
ビット演算子の不一致 (bitwise,bitmask,bit pattern)
【C言語】
論理演算子||に定数を使った!
if(x == ‘a’ || ‘A’){
warning: use of logical ‘||’ with constant operand 警告:論理演算子||に定数を使った[-Wconstant-logical-operand] ■… 続きを読む 【C言語】
論理演算子||に定数を使った!
if(x == ‘a’ || ‘A’){
【C言語】
【|】と【||】、【&】と【&&】の違い短絡評価とは?
■1.【|】と【||】の違い ●on()|off() |はビット演算子なので両辺の関数は必ず呼ばれる(評価される)1|01=1=真なのでthenが表示される。 ●on()||off()) ||は論理演算子なのでon()… 続きを読む 【C言語】
【|】と【||】、【&】と【&&】の違い短絡評価とは?
【C言語の演算子】
ビット演算子の優先順位は危険
if(x & 2 == 2)はバグ
warning: suggest parentheses around comparison in operand of ‘&’ 警告:&ビット演算子の回りにカッコつけよう[-Wparentheses] … 続きを読む 【C言語の演算子】
ビット演算子の優先順位は危険
if(x & 2 == 2)はバグ
【C言語】
if(a||b&&c)が【||】でなく【&&】で改行してたら怪しい
warning: suggest parentheses around ‘&&’ within ‘||’ 警告:A||B&&Cは A||(B&&C) と同じで (A||… 続きを読む 【C言語】
if(a||b&&c)が【||】でなく【&&】で改行してたら怪しい
【C言語】
デッドコード (冗長コード)
*p++ の *
warning: value computed is not used 警告:計算された値は使用されません[-Wunused-value] ■1.*p++は代表的なデッドコード *p++ の * がデッドコードです。この… 続きを読む 【C言語】
デッドコード (冗長コード)
*p++ の *
【C言語】
ビット反転【~】と
論理反転【!】の違い
■1.【チルダ~】対【ビックリマーク!】 ●ビット反転【チルダ~】1 ⇒~ビット反転 ⇒0xFFFFfffE(2進数1111…0)0 ⇒~ビット反転 ⇒0xFFFFfffF(2進数1111…1) … 続きを読む 【C言語】
ビット反転【~】と
論理反転【!】の違い