工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> C言語

Cユニオンズ

C ユニオン

このチュートリアルでは、C プログラミングにおける共用体について学習します。より具体的には、ユニオンを作成し、そのメンバーにアクセスし、ユニオンと構造の違いを学ぶ方法.

共用体は、1 つの重要な違いを除いて、C の構造体に似たユーザー定義型です。

構造体はすべてのメンバーを格納するのに十分なスペースを割り当てますが、共用体は一度に 1 つのメンバー値しか保持できません .


ユニオンを定義する方法

union を使用します ユニオンを定義するキーワード。以下に例を示します:

union car
{
  char name[50];
  int price;
};

上記のコードは、派生型 union car を定義しています .


ユニオン変数を作成

共用体が定義されると、ユーザー定義型が作成されます。ただし、メモリは割り当てられません。特定のユニオン タイプにメモリを割り当てて操作するには、変数を作成する必要があります。

ユニオン変数を作成する方法は次のとおりです。

union car
{
  char name[50];
  int price;
};

int main()
{
  union car car1, car2, *car3;
  return 0;
}

ユニオン変数を作成する別の方法:

union car
{
  char name[50];
  int price;
} car1, car2, *car3;

どちらの場合も、ユニオン変数 car1 , car2 、および共用体ポインター car3 union car の タイプが作成されます。


ユニオンのメンバーにアクセス

. を使用します ユニオンのメンバーにアクセスする演算子。ポインタ変数にアクセスするには、 -> を使用します

上記の例では、


共用体と構造体の違い

ユニオンと構造体の違いを示す例を見てみましょう:

#include <stdio.h>
union unionJob
{
   //defining a union
   char name[32];
   float salary;
   int workerNo;
} uJob;

struct structJob
{
   char name[32];
   float salary;
   int workerNo;
} sJob;

int main()
{
   printf("size of union = %d bytes", sizeof(uJob));
   printf("\nsize of structure = %d bytes", sizeof(sJob));
   return 0;
}

出力

size of union = 32
size of structure = 40

共用体変数と構造体変数のサイズの違いはなぜですか?

ここで、sJob のサイズ は 40 バイトです

ただし、uJob のサイズは は 32 バイトです。これは、ユニオン変数のサイズが常にその最大要素のサイズになるためです。上記の例では、その最大要素のサイズ (name[32] )、32 バイトです。

組合では、すべてのメンバーが同じ記憶を共有します .


例:組合員へのアクセス

#include <stdio.h>
union Job {
   float salary;
   int workerNo;
} j;

int main() {
   j.salary = 12.3;

   // when j.workerNo is assigned a value,
   // j.salary will no longer hold 12.3
   j.workerNo = 100;

   printf("Salary = %.1f\n", j.salary);
   printf("Number of workers = %d", j.workerNo);
   return 0;
}

出力

Salary = 0.0
Number of workers = 100

共用体がどこで使用されているかについては、なぜ C 共用体が必要なのかをご覧ください。


C言語

  1. Java 列挙型
  2. Java 列挙型コンストラクター
  3. C - 組合
  4. 空気圧バルブのサイズを決める方法
  5. 2026年までに4798百万米ドルに達する製造市場規模のAI
  6. アルミ棒材を所定のサイズに切断
  7. パイプ ユニオンとは?
  8. 業務用エアコンのサイズ調整方法
  9. 鍛冶に必要な旋盤のサイズは?
  10. エアレシーバーのサイズの問題
  11. 産業用空気圧縮機のサイズを決めるには?