2

私はCの初心者です。三項演算子が有用であり、if/elseブロックよりもコードが少ない理由を理解しています。

私は維持するためにいくつかのCコードを与えられました、そして私が気づいたことの1つは、以前のプログラマーがこのような三項演算子を使用したことです

myInt = (!myInt) ? MACRO1 : MACRO2;

これはこれとまったく同じことを達成しますか?

myInt = myInt ? MACRO2 : MACRO1;

これは単なるスタイルのものですか?おそらく、「if」ではなく「if not」myIntを考えるのは理にかなっていますか?

4

3 に答える 3

6

はい、このコードはまったく同じことを実現します。条件を記述するときに使用されるロジックに依存するだけなので、スタイルに合わせてチョークで書くことができます (つまり、考えやすい方)。

于 2012-08-10T20:11:02.937 に答える
2

リバースロジックを使用していないため、2番目の例が好きです。したがって、理解しやすく、混乱が少なくなります。

myInt = myInt ? MACRO2 : MACRO1;
于 2012-08-10T20:19:07.477 に答える
2

はい。それで合っています。そのコードの作成者は、表現を必要以上にややこしくしたかったようです。

于 2012-08-10T20:11:12.497 に答える