問題タブ [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.

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

c# - C# の C++ ユニオン

C++ で記述されたライブラリを C# に変換していますが、キーワード 'union' が 1 回存在します。構造体で。

それをC#に翻訳する正しい方法は何ですか? そして、それは何をしますか?次のようになります。

0 投票する
7 に答える
1289 参照

c - 共用体宣言 C コード

次のように、構造体内の共用体の宣言を見てきました。以下にサンプルコードを示します。

私の質問は、メモリの節約に役立ちますか(ユニオンが使用される典型的な用途)? メリットがわかりません。

-広告

0 投票する
20 に答える
149546 参照

c - なぜ C ユニオンが必要なのですか?

ユニオンはいつ使用する必要がありますか? なぜそれらが必要なのですか?

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

c - この共用体が c コードの配列の最初のレコードを削除するのはなぜですか?

これは、4 つの異なる構造を持つユニオン テンプレートで構成されるヘッダー ファイルの 1 つです。

私の目的は、次のように人の名前と性別を取得し、その人の性別と婚姻状況に従って、その人の任意の 3 つの男性/女性の祖先を保存することです..

つまり、MAX3 つのメンバーがあり、それぞれに 3 つの先祖がいるということです。これらの祖先は、次の条件のように、対応するメンバーの性別によって決定されます。

  • 男性なら使うstruct male
  • 女性未婚の場合struct unmarry
  • 女性既婚の場合struct marry

struct name*ptr_ancestorは、祖先を取得し、対応する祖先配列 (ancestomale か祖先女性)を指す必要があるメンバーの名前と性別用です。

メモリ内のオブジェクトは共用体です。Ok。実際、私のプログラムには共用体の配列があります。配列の各要素は、共用体で異なる構造を使用している可能性があります。ここでは、ポインタの割り当てに注意する必要があります。そうしないと、実行時に古い人のレコードが失われる可能性があります。

可能であれば、最初の要素の詳細を取得する方法を教えてください。original[0]服用後もoriginal[1]。ここでは、配列の最後の要素を取得しているだけで、以前のすべてのレコードは実行時に削除されています。他のデータ構造やファイルは使用していません。

私の環境は Windows の Turbo C です。

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

c - この共用体のサイズがビットフィールドで 2 であるのはなぜですか?

私は、char が 1 バイトを取るウィンドウでターボ C に取り組んでいます。今、私の問題は以下のユニオンにあります。

このプログラムは出力を 2 として出力していますが、ユニオンは 1 バイトしかとらないはずです。なぜそうなのですか?

構造体の場合、1バイトを指定しても問題ありませんが、この共用体は不適切に機能しています。

そして、これらのビット フィールドにアクセスする方法がもう 1 つあります。

ビットのアドレスを取得できないため、機能していません。したがって、以下のような別の変数を使用する必要があります

避けられないの??他に方法はありますか???

0 投票する
16 に答える
375755 参照

c - 構造とユニオンの違い

structaとaの違いを示す良い例はありますunionか?struct基本的に、それはそのメンバーのすべてのメモリをunion使用し、最大のメンバーのメモリスペースを使用することを知っています。他にOSレベルの違いはありますか?

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

c - Cでビットフィールドを使用する正しい方法は何ですか?

ビットフィールドを使用して、FPU のないマイクロコントローラー用に作成しようとしている float ライブラリに簡単にアクセスしています。

問題は、ビットフィールドで動作させることができないように見えることです。見てみましょう:

問題は、何かにアクセスまたは変更しようとすると、ビットフィールドがそれぞれ最後から 1,8,23 ビットと見なされることです。最後から23ビットのはずですが、8ビット、そして最後のビットです。ビットフィールドの使用を完全に誤解していない限り。パックを使用すると問題が解決すると思っていましたが、ご覧のとおりそうではありませんでした。

どんな助けでも本当にありがたいです。グーグルで何度もこのサイトにたどり着いたので、大きな期待を寄せています。

0 投票する
8 に答える
24139 参照

c++ - C++ ユニオン配列と変数?

このようなことを行う方法はありません.C++にはありますか?

どこx == v[0]y == v[1]

0 投票する
8 に答える
57089 参照

c - C のユニオンの例

ユニオンがどのように機能するかを理解するためではなく、できれば理解したいのですが、ユニオンでどのようなハックが行われるかを確認するために、ユニオンの例を探しています。

だから、あなたのユニオンハックを自由に共有してください(もちろん、いくつかの説明があります:))