Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

C União

Sindicatos C


Neste tutorial, você aprenderá sobre uniões na programação C. Mais especificamente, como criar sindicatos, acessar seus membros e aprender as diferenças entre sindicatos e estruturas.

Uma união é um tipo definido pelo usuário semelhante a structs em C, exceto por uma diferença de chave.

As estruturas alocam espaço suficiente para armazenar todos os seus membros, enquanto os sindicatos podem armazenar apenas um valor de membro por vez .


Como definir uma união?


Usamos o union palavra-chave para definir sindicatos. Aqui está um exemplo:
union car
{
  char name[50];
  int price;
};

O código acima define um tipo derivado union car .

Criar variáveis ​​de união


Quando uma união é definida, ela cria um tipo definido pelo usuário. No entanto, nenhuma memória é alocada. Para alocar memória para um determinado tipo de união e trabalhar com ele, precisamos criar variáveis.

Veja como criamos variáveis ​​de união.
union car
{
  char name[50];
  int price;
};

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

Outra maneira de criar variáveis ​​de união é:
union car
{
  char name[50];
  int price;
} car1, car2, *car3;


Em ambos os casos, as variáveis ​​de união car1 , carro2 , e um ponteiro de união car3 de union car tipo são criados.

Acessar membros de um sindicato


Usamos o . operador para acessar membros de um sindicato. E para acessar variáveis ​​de ponteiro, usamos o -> operador.

No exemplo acima,

Diferença entre sindicatos e estruturas


Vamos dar um exemplo para demonstrar a diferença entre sindicatos e estruturas:
#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;
}

Saída
size of union = 32
size of structure = 40



Por que essa diferença no tamanho das variáveis ​​de união e estrutura?

Aqui, o tamanho de sJob é de 40 bytes porque

No entanto, o tamanho de uJob é 32 bytes. É porque o tamanho de uma variável de união sempre será o tamanho de seu maior elemento. No exemplo acima, o tamanho de seu maior elemento, (name[32] ), é de 32 bytes.

Com um sindicato, todos os membros compartilham a mesma memória .

Exemplo:como acessar membros do sindicato

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

Saída
Salary = 0.0
Number of workers = 100


Para saber onde os sindicatos são usados, visite Por que precisamos dos sindicatos C?

Linguagem C

  1. Enumerações Java
  2. Construtor de enumeração Java
  3. C - Sindicatos
  4. Como dimensionar uma válvula pneumática
  5. A IA no mercado de manufatura deve atingir US$ 4.798 milhões até 2026
  6. Cortando o Estoque de Barras de Alumínio no Tamanho
  7. O que é uma união de tubos?
  8. Como dimensionar um ar condicionado comercial
  9. Qual ​​tamanho de torno preciso para armeiro?
  10. Tamanho é importante para receptores aéreos