検索
ホームページよくある問題C言語でのユニオンの使い方

C言語でのユニオンの使い方

Sep 27, 2023 am 11:00 AM
C言語union

C 言語における Union の使用法は、異なるデータ型を同じメモリ位置に格納できるようにする特別なデータ型です。Union を使用すると、メモリ領域を節約し、異なるデータ型を簡単に格納できます。型間で変換します。 Union を使用する場合は、対応するメンバーが有効であり、同時にアクセスできるメンバーは 1 つだけであることに注意する必要があります。

C言語でのユニオンの使い方

#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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター