私は他の誰かのコードを調べていましたが、次の構文を取得できませんでした
c = x<0 ? x = -x,'L':'R';
と
if(x) x--,putchar(c);
意味論によると、最初の変数 c に 'L' または 'R' が割り当てられていることは明らかです。2 番目の変数では、x-- と putchar() の両方が実行されます。しかし、ここでのコンマ演算子の役割は正確には何ですか??
私は他の誰かのコードを調べていましたが、次の構文を取得できませんでした
c = x<0 ? x = -x,'L':'R';
と
if(x) x--,putchar(c);
意味論によると、最初の変数 c に 'L' または 'R' が割り当てられていることは明らかです。2 番目の変数では、x-- と putchar() の両方が実行されます。しかし、ここでのコンマ演算子の役割は正確には何ですか??
コンマ演算子は両方の式を評価し、最後の値を返します。
コンマ演算子ではなく別のステートメントを使用することで、両方の読みやすさを向上させることができます。if
1 つ目は、ステートメントを条件式に押し込もうとします。しかし、2 番目は既にif
ステートメントを使用しているため、なぜコンマ演算子が選択されたのかはまったく不明です。
そのコンテキストでのコンマ演算子の役割は、条件演算子の使用を許可し、式の 1 つの評価の一部として割り当てを記述することです。
私の意見では、これは恐ろしいスタイルです。ステートメントは、そのコードのif
意図をより適切に伝え、効率が低下することはほとんどありませんでした。