C 言語における Union の使用法は、異なるデータ型を同じメモリ位置に格納できるようにする特別なデータ型です。Union を使用すると、メモリ領域を節約し、異なるデータ型を簡単に格納できます。型間で変換します。 Union を使用する場合は、対応するメンバーが有効であり、同時にアクセスできるメンバーは 1 つだけであることに注意する必要があります。
#C 言語の Union は、異なるデータ型を同じメモリ位置に格納できるようにする特別なデータ型です。 Union を使用すると、メモリ領域を節約し、異なるデータ型間の変換が容易になります。
1. 共用体の定義:
C 言語では、キーワード Union を使用して共用体の型を定義できます。共用体は構造体と同様に定義されますが、共用体のすべてのメンバーは同じメモリ空間を共有します。 Union の構文は次のとおりです。
union union_name {
member_type member1;
member_type member2;
// ...
};
ログイン後にコピー
このうち、union_name はユニオンの名前、member_type はメンバーのデータ型、member1、member2 などはユニオンのメンバーです。
例:
union Data {
int i;
float f;
char str[20];
};
ログイン後にコピー
2. 共用体メンバーへのアクセス:
ドット演算子 (.) を使用して共用体のメンバーにアクセスできます。共用体のメンバーは同じメモリ空間を共有するため、同時にアクセスできるメンバーは 1 つだけです。共用体メンバーにアクセスするための構文は次のとおりです。
union_name.member_name
ログイン後にコピー
例:
union Data data;
data.i = 10;
printf("data.i = %d\n", data.i);
data.f = 3.14;
printf("data.f = %f\n", data.f);
strcpy(data.str, "Hello");
printf("data.str = %s\n", data.str);
ログイン後にコピー
上記の例では、Data という名前の共用体を定義し、data という名前の変数を作成します。 data.i、data.f、data.str を通じて Union のさまざまなメンバーにアクセスできます。
3. 共用体のサイズ:
共用体のサイズは、その最大のメンバーのサイズによって異なります。共用体のすべてのメンバーは同じメモリ空間を共有するため、共用体のサイズは最大のメンバーを収容できるほど大きくすることができます。
例:
union Data {
int i;
float f;
char str[20];
};
printf("sizeof(union Data) = %lu\n", sizeof(union Data));
ログイン後にコピー
上記の例では、sizeof 演算子を使用してユニオン データのサイズを取得します。通常、float 型のサイズは int および char 配列のサイズよりも大きいため、union Data のサイズは float のサイズと等しくなります。
4. ユニオンの適用:
ユニオンは次のような状況でよく使用されます:
- メモリ領域の節約: 複数のメンバーのうち 1 つだけを使用する場合、次のことが可能です。メモリ領域を節約するには、union を使用します。
- 型変換: 整数から浮動小数点数への変換、浮動小数点数から文字配列への変換など、さまざまなデータ型間の変換に Union を使用できます。
例:
union Convert {
int i;
float f;
};
union Convert convert;
convert.i = 10;
printf("convert.i = %d\n", convert.i);
printf("convert.f = %f\n", convert.f);
convert.f = 3.14;
printf("convert.i = %d\n", convert.i);
printf("convert.f = %f\n", convert.f);
ログイン後にコピー
上の例では、int 型のメンバー i と float 型のメンバー f を含む Convert という名前の共用体を定義します。共用体の 1 つのメンバーを変更すると、別のメンバーの対応する値を取得できるため、型変換が実現します。
union のメンバーは同じメモリ空間を共有するため、union を使用するときは注意する必要があることに注意してください。 1 つのメンバーの値を変更すると、他のメンバーの値は上書きされます。したがって、union を使用する場合は、対応するメンバーが有効であること、および同時に 1 つのメンバーのみにアクセスできることを確認する必要があります。
要約すると、C 言語の Union は、異なるデータ型を同じメモリ位置に格納できるようにする特別なデータ型です。共用体を定義し、そのメンバーにアクセスすることで、メモリ領域を節約し、異なるデータ型間で変換できます。 Union を使用する場合は、対応するメンバーが有効であり、同時にアクセスできるメンバーは 1 つだけであることに注意する必要があります。
以上がC言語でのユニオンの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。