Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C Gewerkschaften

C-Gewerkschaften

In diesem Tutorial lernen Sie Unions in der C-Programmierung kennen. Genauer gesagt, wie man Gewerkschaften gründet, auf ihre Mitglieder zugreift und die Unterschiede zwischen Gewerkschaften und Strukturen lernt.

Eine Vereinigung ist ein benutzerdefinierter Typ, der Strukturen in C ähnlich ist, mit Ausnahme eines wesentlichen Unterschieds.

Strukturen weisen genügend Speicherplatz zu, um alle ihre Mitglieder zu speichern, wohingegen Unions nur jeweils einen Mitgliedswert enthalten können .


Wie definiere ich eine Union?

Wir verwenden den union Schlüsselwort zum Definieren von Gewerkschaften. Hier ist ein Beispiel:

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

Der obige Code definiert einen abgeleiteten Typ union car .


Union-Variablen erstellen

Wenn eine Union definiert wird, erstellt sie einen benutzerdefinierten Typ. Es wird jedoch kein Speicher zugewiesen. Um Speicher für einen bestimmten Union-Typ zuzuweisen und damit zu arbeiten, müssen wir Variablen erstellen.

So erstellen wir Union-Variablen.

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

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

Eine andere Möglichkeit, Union-Variablen zu erstellen, ist:

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

In beiden Fällen Union-Variablen car1 , auto2 , und einen Vereinigungszeiger car3 von union car Typ erstellt.


Zugriff auf Mitglieder einer Gewerkschaft

Wir verwenden den . Operator für den Zugriff auf Mitglieder einer Gewerkschaft. Und um auf Pointer-Variablen zuzugreifen, verwenden wir den -> Betreiber.

Im obigen Beispiel


Unterschied zwischen Unions und Strukturen

Nehmen wir ein Beispiel, um den Unterschied zwischen Unions und Strukturen zu demonstrieren:

#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;
}

Ausgabe

size of union = 32
size of structure = 40

Warum dieser Unterschied in der Größe von Union- und Strukturvariablen?

Hier die Größe von sJob ist 40 Bytes, weil

Allerdings ist die Größe von uJob ist 32 Bytes. Das liegt daran, dass die Größe einer Union-Variablen immer die Größe ihres größten Elements ist. Im obigen Beispiel ist die Größe des größten Elements (name[32] ), ist 32 Byte groß.

Bei einer Gewerkschaft teilen alle Mitglieder dasselbe Gedächtnis .


Beispiel:Zugriff auf Gewerkschaftsmitglieder

#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;
}

Ausgabe

Salary = 0.0
Number of workers = 100

Um zu erfahren, wo Unions verwendet werden, besuchen Sie Warum brauchen wir C-Unions?


C Sprache

  1. Java-Enumerationen
  2. Java-Enum-Konstruktor
  3. C - Gewerkschaften
  4. So dimensionieren Sie ein Pneumatikventil
  5. Marktgröße für KI im verarbeitenden Gewerbe soll bis 2026 4798 Millionen US-Dollar erreichen
  6. Zuschneiden von Aluminium-Stangenmaterial
  7. Was ist eine Rohrverbindung?
  8. Größenbestimmung einer gewerblichen Klimaanlage
  9. Welche Drehbankgröße benötige ich zum Büchsenmacher?
  10. Größe ist wichtig für Druckluftbehälter