Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C vakbonden

C Vakbonden

In deze tutorial leer je over vakbonden in C-programmering. Meer specifiek, hoe vakbonden op te richten, toegang te krijgen tot de leden en de verschillen tussen vakbonden en structuren te leren kennen.

Een union is een door de gebruiker gedefinieerd type vergelijkbaar met structs in C, op één belangrijk verschil na.

Structuren wijzen voldoende ruimte toe om al hun leden op te slaan, terwijl vakbonden slechts één lidwaarde tegelijk kunnen bevatten .


Hoe een unie definiëren?

We gebruiken de union trefwoord om vakbonden te definiëren. Hier is een voorbeeld:

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

De bovenstaande code definieert een afgeleid type union car .


Unionvariabelen maken

Wanneer een vakbond is gedefinieerd, wordt een door de gebruiker gedefinieerd type gemaakt. Er wordt echter geen geheugen toegewezen. Om geheugen toe te wijzen aan een bepaald type vereniging en ermee te werken, moeten we variabelen maken.

Zo maken we unievariabelen.

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

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

Een andere manier om unievariabelen te maken is:

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

In beide gevallen, unievariabelen car1 , auto2 , en een vakbondsaanwijzer car3 van union car type worden gemaakt.


Toegang tot leden van een vakbond

We gebruiken de . exploitant om toegang te krijgen tot leden van een vakbond. En om toegang te krijgen tot pointervariabelen, gebruiken we de -> telefoniste.

In het bovenstaande voorbeeld,

  • Om toegang te krijgen tot prijs voor car1 , car1.price wordt gebruikt.
  • Om toegang te krijgen tot prijs met behulp van car3 , ofwel (*car3).price of car3->price kan worden gebruikt.

Verschil tussen vakbonden en structuren

Laten we een voorbeeld nemen om het verschil tussen vakbonden en structuren aan te tonen:

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

Uitvoer

size of union = 32
size of structure = 40

Waarom dit verschil in de grootte van unie- en structuurvariabelen?

Hier, de grootte van sJob is 40 bytes omdat

  • de grootte van name[32] is 32 bytes
  • de grootte van salary is 4 bytes
  • de grootte van workerNo is 4 bytes

De grootte van uJob is 32 bytes. Dit komt omdat de grootte van een unie-variabele altijd de grootte van het grootste element zal zijn. In het bovenstaande voorbeeld is de grootte van het grootste element, (name[32] ), is 32 bytes.

Bij een vakbond delen alle leden dezelfde herinnering .


Voorbeeld:toegang tot vakbondsleden

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

Uitvoer

Salary = 0.0
Number of workers = 100

Ga voor meer informatie over waar vakbonden worden gebruikt naar Waarom hebben we C-vakbonden nodig?


C Taal

  1. Java-opsommingen
  2. Java enum Constructor
  3. C - Vakbonden
  4. Hoe een pneumatische klep te dimensioneren?
  5. AI in productiemarktomvang bereikt $ 4798 miljoen in 2026
  6. Aluminium staafvoorraad op maat snijden
  7. Wat is een Pipe Union?
  8. De maat van een commerciële airconditioner maken
  9. Welk formaat draaibank heb ik nodig voor wapensmeden?
  10. Grootte is belangrijk voor luchtontvangers
  11. Hoe meet ik een industriële luchtcompressor?