C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C /C++でのユニオンの目的


ユニオンはユーザー定義のデータ型です。ユニオンのすべてのメンバーは、同じメモリ位置を共有します。組合の規模は、組合の最大メンバーの規模によって決定されます。 2人以上のメンバーに同じメモリ位置を使用する場合は、ユニオンが最適です。

ユニオンは構造に似ています。共用体変数は、構造体変数と同じ方法で作成されます。キーワード「union」は、C言語で共用体を定義するために使用されます。

これがC言語のユニオンの構文です

union union_name {
   member definition;
} union_variables;

ここで

  • union_name −組合に付けられた任意の名前。

  • メンバーの定義 −メンバー変数のセット。

  • union_variable −これはユニオンの対象です。

これがC言語のユニオンの例です

#include <stdio.h>
#include <string.h>

union Data {
   int i;
   float f;
} data, data1;

int main( ) {
   printf( "Memory size occupied by data : %d\t%d", sizeof(data), sizeof(data1));
   return 0;
}

出力

これが出力です

Memory size occupied by data : 4 4

  1. C / C ++での引数の強制?

    ここでは、CまたはC++での引数の強制について説明します。引数強制は、コンパイラーが引数をあるタイプから別のタイプに暗黙的に変換できる1つの手法です。引数プロモーションルールに従います。 1つの引数が下位データ型の場合、上位データ型に変換できますが、その逆は当てはまりません。その理由は、1つの上位データ型が下位データ型に変換されると、一部のデータが失われる可能性があるためです。 暗黙の変換がどのように行われるかを表現できるピラミッドを1つ見てみましょう。 例 #include<iostream> using namespace std; double myAdd(doubl

  2. C++での二分木の簡潔なエンコーディング

    二分木があるとします。私たちが知っているように、バイナリツリーの簡潔なエンコーディングは可能な限り低いスペースに近いパフォーマンスを発揮します。 n番目のカタラン数は、n個の異なるノードを持つ構造的に異なる二分木の数によって指定されます。 nが大きい場合、これは約4nです。したがって、それをエンコードするには、log2(4)n=2nビット程度の最小値が必要です。したがって、簡潔な二分木は2n + O(n)ビットを消費します。 したがって、入力が次のような場合 その場合、出力は次のようになります エンコードされた- 構造リスト111 0 0 1 0 0 1 0 1 0 0 デー