副作用が出たので使用中止

アバター
いわん
記事: 32
登録日時: 9年前

副作用が出たので使用中止

投稿記事 by いわん » 6年前

自作スクリプト言語のテスト用に2変数の値を交換する式を実行してみたところ
意図しないが表示された。評価の順番のせいだと思う。
C言語では未定義動作だと思うけど、gccやVC++では正しく交換される。
別にこだわる必要もないのだけれどできれば正しい結果になるようにしたい。
副作用のある式.png
変数の値を交換する式
副作用のある式.png (9.54 KiB) 閲覧数: 79 回

アバター
もるも
記事: 54
登録日時: 9年前

Re: 副作用が出たので使用中止

投稿記事 by もるも » 6年前

アルゴリズム事典買って最初スワップのことが書いてあって、
ビット演算使うスワップがよくわからなくてそっ閉じしたのを思い出した(笑)

アバター
いわん
記事: 32
登録日時: 9年前

Re: 副作用が出たので使用中止

投稿記事 by いわん » 6年前

ビット演算子の ^(排他的論理和)はフラグ操作などでよく使われるので使い方覚えておくと便利ですね( ̄▽ ̄)