teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2017/06/23 07:31

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,3 +1,6 @@
1
+ 追記:マクロSAME4のような例を出しましたがあまりよい方法とはいえないですね。マクロの展開で第一引数のaが複数回展開されます。そのためaが単純な変数参照でない場合にいやなことが起きます。特に副作用がある式だったりすると最悪ですね。単に4引数の関数を定義する方法を挙げた方がよかったと思います。すみませんでした。
2
+
3
+ ###以下元の回答
1
4
  上げておられるコードの中では一番最初以外は正しくありません。2番目の書き方は演算子の優先度に従って括弧をつけた上で、括弧の中の評価結果が何になるか考えれば間違いに気づけると思います。3番目の例は&&の仕様を調べてみてください。
2
5
 
3
6
  さて、多数の変数が同じかどうかということを問題にするとき「それらの変数の集合を統一的に扱えるようにしたい」なら配列にするのが順当だと思います。対象としたい値がN個あったとして配列にしておけばNが4であろうが10であろうがコードを変える手間が最小限(個数を表すNについてのみ)でよくなります。