共用体とは?
共用体(union)とは、プログラミング言語において構造体(structure)に似たデータ構造の一つであり、複数の変数を同じメモリ領域に置いて利用することができます。
通常、構造体は複数のメンバー変数を定義することで、各々のメンバー変数を利用することができますが、共用体は同じメモリ領域に複数の変数を定義し、そのうちの1つだけを利用することができます。
共用体はメモリの使用効率を高めることができるため、大量のデータを扱うプログラムや、リソースが限られている組み込みシステムでよく利用されます。
構造体における共用体の使用方法
構造体の中に共用体を定義することで、複数の型を収納する変数を作成することができます。
例えば以下のような構造体を考えます。
“`
typedef struct {
int type;
union {
int i;
float f;
char str[10];
} data;
} Var;
“`
この例では、`type`という変数で`data`に格納されているデータの型を判別することができ、`data`には`int`、`float`、`char[]`のいずれかのデータ型を共用して格納することができます。
具体的には、以下のように変数を宣言することができます。
“`
Var num;
num.type = 1;
num.data.i = 10;
Var str;
str.type = 3;
strcpy(str.data.str, “Hello”);
“`
このように、共用体を利用することで、構造体に複数の変数を格納することができます。
まとめ
共用体は、複数の変数を同じメモリ領域に置き、効率的にリソースを利用するためのデータ構造です。構造体の中で共用体を利用することで、複数の型を収納する変数を作成することができ、プログラミングにおいて重要な役割を果たしています。