回答編集履歴

1

追記

2017/06/23 07:31

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

test CHANGED
@@ -1,3 +1,9 @@
1
+ 追記:マクロSAME4のような例を出しましたがあまりよい方法とはいえないですね。マクロの展開で第一引数のaが複数回展開されます。そのためaが単純な変数参照でない場合にいやなことが起きます。特に副作用がある式だったりすると最悪ですね。単に4引数の関数を定義する方法を挙げた方がよかったと思います。すみませんでした。
2
+
3
+
4
+
5
+ ###以下元の回答
6
+
1
7
  上げておられるコードの中では一番最初以外は正しくありません。2番目の書き方は演算子の優先度に従って括弧をつけた上で、括弧の中の評価結果が何になるか考えれば間違いに気づけると思います。3番目の例は&&の仕様を調べてみてください。
2
8
 
3
9