問題タブ [unions]
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.
c - C の共用体に関する質問 - ある型として保存し、別の型として読み取る - 実装定義ですか?
私が理解している限り、K&R から C のユニオンについて読んでいましたが、ユニオン内の単一の変数はいくつかの型のいずれかを保持でき、何かが 1 つの型として格納され、別の型として抽出された場合、結果は純粋に実装定義されます。
次のコード スニペットを確認してください。
出力:
ここでは、 に値を代入していますが、とのu.ch
両方から取得しています。実装定義ですか?それとも私は本当にばかげたことをしていますか?u.ch
u.i
他のほとんどの人にとっては非常に初心者に見えるかもしれませんが、その出力の背後にある理由を理解することはできません.
ありがとう。
c - ユニオン対ボイドポインタ
ユニオンとは対照的に、単にボイド*を使用することの違いは何でしょうか?例:
どちらもまったく同じことを達成するために使用できますが、ユニオンまたはボイド*を使用する方が良いですか?
c++ - ユニオン内の奇妙な動作クラス オブジェクト
こんにちは、次のコードの理由を知りたいです
上記のコードの場合、「error C2620: union 'Test' : member 't1' has user-defined constructor or non-trivial default constructor」というエラーが発生します
上記の場合、エラーはありません。
理由を知りたかった。
前もって感謝します。:)
c - 複合リテラルで匿名共用体を割り当てることは (合法的に) 可能ですか?
私は構造体を持っています:
次のような複合リテラルを割り当てようとすると、
gcc は次のような警告を表示します。
あいまいな可能性のある型に値を代入するだけで、コンパイラが確信を持てないことは明らかです。ただし、より正確に指定しようとしても、次のようになります。
私は得る:
(union <union name>)
前に置くとうまくいくかもしれないと読んだことi:
があります。しかし、私は匿名の組合を持つことを好みます。それを行う方法はありますか?
c++ - ユニオンメンバーはコンストラクタを持っていないかもしれませんが、`std::pair`は大丈夫ですか?
union
メンバーは、デストラクタまたはコンストラクタを持つことはできません。したがって、コンストラクターがある場合、次のクラスFoo
を自分でテンプレート化することはできません。MyClass
MyClass
とにかくそれを行うと、次のエラーが発生します。
それを回避するためにMyClass
、最初に物事をコピーする厄介な構築関数を作成しました。
createMyClass
しかし、この関数を使用するよりも良い方法があるかどうか疑問に思っています。コンストラクターはより効率的であり、重要なコンポーネントとして、MyClass
私Foo<MyClass>
のコードで何百万回も構築されます。
std::ペア
で使用できることにも少し驚いています:std::pair
union
私の知る限り、std::pair
(コードを参照)コンストラクターはありますか?
.net - PInvokeはユニオン付きのCタイプを返します
結合された構造体を返すC関数をIP/呼び出しますか?
c++ - 動的割り当ての問題を回避するための共用体の使用
割り当てられたメモリを手動で管理することを避けるために、可変長構造を返す Win32 API にアクセスするときに共用体を使用することをお勧めします。
次の点を考慮してください。
これに大きな問題はありますか?
c++ - C:ユニオンは実際にどこで使用されていますか?
タイプのアラインメントが保証されている例があります。unionmax_align。友達を説明するために、ユニオンを実際に使用するさらに簡単な例を探しています。
c - 構造体の yacc での共用体の使用
文法メンバーのタイプを指定する方法について少し混乱しています。prog と decls を ASTNode として宣言したいと思います。リストなどに追加するためにこれらのメンバーを使用します。しかし、yacc はそれらを ASTNode として認識できず、タイプ エラーが発生します。
ここで私の tIdent,tCharConst,tIntConstant にはいくつかの型がありますが、メンバーに ASTNode 型を与える方法。
c++ - 匿名の構造体/共用体を使用してCコードをコンパイルする方法は?
私はこれをc++/ g++で行うことができます:
それで、
動作します。
gccを使用してcでこれをどのように行うのですか?私は持っています
しかし、特にエラーが発生します