タグ付けされた質問 「unions」

15
構造とユニオンの違い
a structとaの違いを示す良い例はありますunionか?基本的に私はそれstructがそのメンバーのすべてのメモリをunion使用し、最大のメンバーのメモリ空間を使用することを知っています。他のOSレベルの違いはありますか?
411 c  struct  unions 

15
CおよびC ++での共用体の目的
私は以前にユニオンを快適に使用しました。今日、私はこの投稿を読んで、このコードが union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // somewhere down the line, without any edit to pixel if(pixel.components.a) // accessing the non-active member ARGB::components …
254 c++  c  unions  type-punning 


18
いつユニオンを使うのですか?Cのみの時代の名残ですか?
私は学びましたが、実際には組合を取得しません。私が通過するすべてのCまたはC ++テキストはそれらを紹介します(時々)が、それらを使用する理由または場所の実用的な例はほとんどありません。現代の(またはレガシーの)場合に組合はいつ役立つでしょうか?使用するスペースが非常に限られている場合、またはAPI(または同様の何か)を開発していて、エンドユーザーに複数のオブジェクト/タイプのインスタンスを1つだけに強制したい場合、私の2つの推測はマイクロプロセッサのプログラミングです。一度。これらの2つの推測は右に近いですか?
133 c++  c  unions 


6
C ++が匿名の構造体を許可しないのはなぜですか?
一部のC ++コンパイラーは、匿名の共用体と構造体を標準C ++の拡張として許可します。これは、時々非常に役立つ、ちょっとした構文上の砂糖です。 これが標準の一部にならないようにする根拠は何ですか?技術的な障害はありますか?哲学的なもの?それともそれを正当化する必要性が十分ではないのですか? これが私が話していることのサンプルです: struct vector3 { union { struct { float x; float y; float z; }; float v[3]; }; }; 私のコンパイラはこれを受け入れますが、「無名の構造体/共用体」はC ++に対する非標準の拡張であることを警告しています。
92 c++  struct  unions 

2
メンバーが1つだけの組合を使用する目的は何ですか?
seastarのソースコードを読んでいたときに、tx_sideメンバーが1つだけのと呼ばれる共用体構造があることに気付きました。これは特定の問題に対処するためのハックですか? tx_side参考までに、以下の構造を貼り付けます。 union tx_side { tx_side() {} ~tx_side() {} void init() { new (&a) aa; } struct aa { std::deque<work_item*> pending_fifo; } a; } _tx;
89 c++  c++14  unions 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.