Diferença entre estrutura e união em c

Diferença entre estrutura e união em c
A linguagem de programação C fornece aos programadores vários tipos de dados para armazenar dados na memória para processamento. Entre esses tipos de dados, estruturas e sindicatos são dois tipos de dados comumente usados ​​na programação C para agrupar múltiplas variáveis ​​de diferentes tipos de dados em uma única unidade. Tanto as estruturas quanto os sindicatos são definidos pelo programador e servem a propósitos semelhantes. No entanto, eles diferem em vários aspectos, incluindo armazenamento, alocação de memória e uso.

O artigo fornece uma análise comparativa entre estrutura e união na linguagem de programação C.

Estrutura em c

Uma estrutura em C é um tipo de dados definido pelo usuário que permite aos programadores agrupar variáveis ​​de diferentes tipos de dados em uma única entidade. Uma estrutura pode conter membros, que podem ser variáveis ​​de qualquer tipo de dados, como números inteiros, carros alegóricos, matrizes ou até outras estruturas. Para declarar uma estrutura em C, você deve usar a palavra -chave “Estrutura” seguido pelo nome da estrutura e de suas variáveis ​​de membros, como mostrado no exemplo a seguir:

Declaração de uma estrutura em C

A seguir, a declaração de estrutura na programação C.

struct_keyword struct_name
data_type1 membro1;
data_type2 membro2;
;

União em c

Uma união em C também é um tipo de dados definido pelo usuário que permite ao programador armazenar diferentes tipos de dados no mesmo local de memória. Ao contrário das estruturas, os sindicatos têm apenas um local de memória que é compartilhado por todos os seus membros. Portanto, apenas um membro do sindicato pode acessá -lo ao mesmo tempo. O tamanho de um sindicato é medido pelo tamanho de seu maior membro.

Declaração de uma União em C

Aqui está um exemplo de como declarar uma união em c.

Union_keyword Union_name
data_type1 membro1;
data_type2 membro2;
;

Diferença entre estrutura e união em c

A tabela a seguir mostra a diferença entre estrutura e união na programação C.

Recurso Estrutura União
Definição Coleção de membros de dados relacionados O mesmo local de memória é compartilhado por todos os membros
Alocação de memória Aloca memória para todos os membros Aloca memória para o maior membro
Inicializando membros Pode ser inicializado individualmente ou como um todo Só pode inicializar um membro de cada vez
Inicialização padrão Os membros são inicializados para valores padrão Os membros não são inicializados por padrão
Cálculo de tamanho A soma dos tamanhos de todos os membros Tamanho do maior membro
Casos de uso Usado para armazenar vários tipos de dados e acessá -los juntos Usado para salvar a memória quando vários tipos de dados compartilham o mesmo local de memória
Acessando membros Usando o nome do membro e o ponto (.) Operador Usando o nome do membro e o ponto (.) Operador

A seguir, é apresentado um exemplo de codificação que ilustra a diferença entre estrutura e união na programação C.

#incluir
estruturar mystruct
int a;
Char B;
;
Union Myunion
int x;
char y;
;
int main ()
estruturar mystruct mystruct;
mystruct.a = 10;
mystruct.b = 'a';
Union Myunion Myunion;
MyUnion.x = 10;
MyUnion.y = 'a';
printf ("valores de estrutura: %d, %c \ n", mystruct.A, MyStruct.b);
printf ("valores da união: %d, %c \ n", MyUnion.x, MyUnion.y);
retornar 0;

No código acima, definimos uma estrutura chamada Mystruct que contém um número inteiro e um personagem, e uma união chamada MyUnion que também contém um número inteiro e um personagem. Em seguida, criamos instâncias de ambos Mystruct e MyUnion e definir seus valores. Definimos o valor inteiro de ambos como 10 e o valor do personagem de ambos 'A'.

Quando imprimimos os valores da estrutura e união, podemos ver que a estrutura possui variáveis ​​separadas para o número inteiro e caráter, e cada variável mantém seu valor. A saída é mostrada abaixo:

Conclusão

Estrutura e união são dois tipos de dados diferentes que têm a sintaxe semelhante na linguagem C. Eles são diferentes em alguns aspectos, como armazenamento, alocação de memória, usabilidade e outros recursos. Este artigo apresenta um guia fácil para encontrar uma comparação detalhada entre estrutura e união, seguida por exemplos de codificação que diferenciam claramente ambos na programação C C.