論理演算の条件式

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

論理演算の条件式

#1

投稿記事 by h1j1k1 » 3年前

gccコンパイラにおいて、論理演算のorで、一つでも真値が出た場合はそれ以降の条件式は評価されますか?

box
記事: 2002
登録日時: 13年前

Re: 論理演算の条件式

#2

投稿記事 by box » 3年前

10個くらいのorでつながり、1億回くらいループするif文を書いて、
1)1個目で真
2)5個目くらいで真
3)最後で真
で、どれが速いかを比べてみては?
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

YuO
記事: 947
登録日時: 13年前
住所: 東京都世田谷区

Re: 論理演算の条件式

#3

投稿記事 by YuO » 3年前

||の第1引数が真ならば、第2引数は評価されない、となっています。
ref) https://www.gnu.org/software/gnu-c-manu ... -Operators の第2文
The GNU C Reference Manual さんが書きました: The logical disjunction operator || tests if at least one of two expressions it true. If the first expression is true, then the second expression is not evaluated.
このため、
h1j1k1 さんが書きました:
3年前
gccコンパイラにおいて、論理演算のorで、一つでも真値が出た場合はそれ以降の条件式は評価されますか?
に関しては「評価されません」。
オフトピック
遅くともC89以降、この動作が標準に定められた動作になります。

返信

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