タイトルでかなり明確だと思います。私はこれについて完全には確信が持てず、Google を介して適切な答えを見つけることができません (悲しいかな、私は標準化の芸術に取り組んでいません)。
int i = x++, j = x++;
これは定義されていますか?通常のステートメントは未定義の動作になると確信していますが、コンマ演算子はシーケンスポイントであり、合法ですが、初期化子がセミコロンで終了するか、次の変数が宣言され始めるかについて明確なソースはありません、そしてそれは使用中のコンマ演算子ではないため、明確な答えが見つかりません。したがって、a) コンマがイニシャライザを終了し、シーケンス ポイントであり、それが機能するか、b) 機能しないかのいずれかです。それはどれですか?i = x++, j = x++;
そして、排除するために、私は頭痛を単純化して、次のように書くべきであることを知っています:
int i = x++;
int j = x++;
そして、それが定義されていることを保証します。好奇心からさらに質問します。