問題タブ [comma-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
139 参照

c - C:マクロで変数を作成して返す

このCマクロがコンパイルに失敗する理由について少し混乱しています。

それを呼び出すと、エラーが発生します。

typeof(lua_to##type)だけに置き換えると同じことが起こるintので、問題はコンマに関係しているのではないかと思います。このような式の途中で変数を宣言することはできませんか?

gccにはブロックから値を返すための拡張機能があることは知っていますが、コンパイラー拡張機能は避けたいと思います。また、これをインライン関数に変更する必要があることも理解していますが、マクロが機能しない理由に興味があります。

0 投票する
1 に答える
163 参照

c - 初心者:コンパイル時のC構文エラー

コンパイルしようとすると、最初の行[for(int ...]]でこのエラーが発生します:

別の')'を追加する必要があるのはなぜですか?

0 投票する
3 に答える
1459 参照

c++ - C ++の条件演算子内のコンマ演算子の優先順位は何ですか?

ここで何が起こっているのですか?

2番目のケースは問題ないようです。最初のケースでは、xとyの両方が1にインクリメントされると予想しますが、左側のオペランドのみがインクリメントします。

0 投票する
2 に答える
421 参照

c++ - コンマ演算子で抑制されたコンストラクターの移動

このプログラム:

gcc-4.7.1出力(リンク)でコンパイルした場合:

なぜコンマ演算子がこの効果をもたらすのですか?標準は言う:

5.18コンマ演算子[expr.comma]

1-[...]結果のタイプと値は、右のオペランドのタイプと値です。結果は、右のオペランド[...]と同じ値のカテゴリになります。右のオペランドの値が一時的なものである場合、結果はその一時的なものになります。

コンマ演算子がプログラムのセマンティクスに影響を与えることを可能にする何かを見逃したことがありますか、それともこれはgccのバグですか?

0 投票する
2 に答える
10119 参照

java - Java-forループ宣言の外側のコンマ演算子

私はこのようにコンマ演算子を使用できることを知っています

しかし、いくつかの記事は、コンマ演算子をforループ宣言の外で使用できることを示唆しているようです。

ソース:http ://www.cs.umd.edu/~clin/MoreJava/ControlFlow/comma.html

また

ソース:https ://stackoverflow.com/a/12047433/1084813

これは、コード難読化コンテストや同僚を混乱させるための巧妙なトリックですが、どちらの例もコンパイルされません(Java 1.6、Eclipse Juno)。エラーは「割り当ての左側は変数でなければなりません」です。コンパイラの設定を調べて、不正なコードを防ぐために禁止できるかどうかを確認しましたが、運が悪かったのです。

どうしたの?コンマ演算子は、後で変更された古い仕様の一部でしたか?これらの例を書いた人々は、これを可能にする別のJavaセットアップを使用していますか?

0 投票する
2 に答える
2631 参照

c++ - ここでカンマ演算子はどのように使用されていますか?

重複の可能性:
C++ コンマ演算子
C コンマ演算子の使用

私は C++ を初めて使用するわけではありませんが、次のコードを目にするのはこれが初めてです。

それが C++ コードです。ここで何が起こっているのか教えてもらえますか? 変数 b はどのようにして値 3 を取得するのでしょうか?

0 投票する
2 に答える
687 参照

c++ - x = 0,1; を 2 倍にするのはなぜですか。コンパイルしない?

コンパイルされません (MSVC9.0 で試します)。エラーは

ポイントの代わりにコンマがあることは認識していますが、上記の行は次のように解釈されるべきではありませんか?

ちなみに、初期化は括弧を使用して正常にコンパイルされます。

operator ,よりも優先順位が低い線に沿って考えてoperator =いましたが、この場合=は演算子がないため、これは問題になりません。それを決定する構文規則は何か

違法であるべき?

0 投票する
2 に答える
210 参照

c++ - コンマ演算子の使用法

重複の可能性:
forループで異なるタイプの2つの変数を宣言することは可能ですか?

このコードを考えてみましょう:

MSVC 2010で、これをforループでコンパイルするとエラーが発生することに非常に驚きました。MSVSでコンマ演算子の使用は禁止されていますか?

エラーは次のとおりです。

「inti」定義をループから外そうとすると、次のようになります。

0 投票する
6 に答える
649 参照

c - Cのコンマと代入演算子

私は次のものを持っています:

出力は次のとおりです。

コンマ演算子は代入演算子とどのように連携しますか?私が知っていることから、次の場合、2番目の式を評価して返します。

それで、なぜそれは評価するのa = bでしょうか?

0 投票する
2 に答える
1220 参照

c++ - コンマ演算子は左結合でなければなりませんか?

この優先順位表によると、コンマ演算子は左結合です。つまり、a, b, cとして解析され(a, b), cます。それは必然ですか?a, (b, c)まったく同じ動作をしませんか?