次のようなコード セグメントがあります。
if(a < b)
{
x = y;
return w;
}
/* all unrelated variables above*/
x = something;
y = something;
/*both x and y from above*/
x と y はグローバル変数であり、if 部分の内部で変更されます。y を x に代入してから、w または単に定数を返す必要があります。
if 部分を置き換えるには、三項演算子を使用する必要があります。
私は次のことを試しました:
return (((a < b) ? (x = y, w) : 1), (x = something, y = something));
しかし、私は望ましい結果を得ていないようです。私はそれが間違っていることを知っています。これは、同様の式からreturn語幹を使用したためです。つまり、次のとおりです。
if(x < y)
return (x = y);
return 1;
私は次のように書きました:
return ((x < y) ? x = y : 1);
しかし、三項演算子での完全に異なる変数の事前割り当てを含む値を返すにはどうすればよいでしょうか?