Diferença entre Estrutura e União Diferença entre

Anonim

Tanto o estrutura e união são tipos de dados definidos pelo usuário em C Language e são conceitualmente os mesmos, no entanto, eles ainda são diferentes de algumas maneiras, como a maneira como a memória é alocada aos seus membros. Eles são declarados de forma semelhante, mas funcionam de forma diferente. Eles permitem ao usuário combinar diferentes tipos de dados sob um único nome. Enquanto a localização de memória separada é usada para cada membro ao declarar variáveis ​​de estrutura, os diferentes membros de uma variável de união compartilham a mesma localização de memória. Vamos estudar a diferença entre a estrutura e a união é o detalhe.

O que é Estrutura?

Uma estrutura é apenas outro tipo de dados definido pelo usuário em C que permite ao usuário combinar tipos de dados de diferentes tipos em um único tipo em um bloco de memória. Uma estrutura pode conter tipos de dados simples e complexos relacionados entre si, o que, de outra forma, não fará sentido. Cada membro dentro de uma estrutura obtém seu próprio local de memória para que possa ser acessado e recuperado a qualquer momento.

Uma estrutura é usada quando muitos dados precisam ser agrupados como um diretório que armazena informações sobre muitos membros em um livro ou um catálogo de endereços que armazena todas as informações sobre um único contato - nome, endereço, número de contato, e assim por diante. O endereço de cada membro estará em ordem ascendente, o que significa que a memória de cada membro começará em diferentes valores de deslocamento. Alterar o valor de um membro não terá nenhum efeito sobre outros membros.

Uma palavra-chave 'struct' é usada para definir uma estrutura de diferentes tipos de dados sob um único nome. Por exemplo, se você quiser criar um banco de dados de funcionários, você precisará armazenar o nome do empregado, a idade, o telefone e os detalhes do salário em uma única entidade. Isso é feito pela palavra-chave 'struct', que então diz ao compilador que uma estrutura foi declarada.

struct employee {

nome de cadeia;

idade do cordão;

telefone de corda;

salário de cadeia;

} emp1, emp2;

Aqui, 'empregado' é o nome da estrutura e duas variáveis ​​'emp1' e 'emp2' são criadas do tipo 'empregado'. As chaves de fechamento devem ser seguidas por um ponto-e-vírgula (;).

Os membros de uma estrutura podem ser acessados ​​por dois tipos de operadores:

  1. Operador de membro
  2. Operador de ponteiro de estrutura

O que é Union?

É um tipo de dados especial usado em C que permite ao usuário armazenar tipos de dados de diferentes tipos na mesma localização de memória. Uma união é bastante semelhante a uma estrutura e pode ser definida substituindo a palavra-chave 'struct' pela palavra-chave 'union'. Os membros superam a memória um do outro em uma união e é grande o suficiente para caber todos os seus membros.

Quando uma variável é associada à união, o compilador aloca a memória considerando o tamanho da maior memória, de modo que o tamanho de uma união é igual ao tamanho do maior membro de dados.Uma união pode ser definida com muitos membros, mas apenas um membro contém o valor em qualquer instância de tempo.

O endereço é o mesmo para todos os membros de uma união, o que significa que cada membro começa com o mesmo valor de compensação. E alterar o valor de um membro afetará os valores de outros membros. Uma união pode ser usada quando você deseja armazenar algo que é um dos vários tipos de dados.

empregado sindicalizado <

char name [32];

idade int;

salário flutuante;

};

Aqui a palavra-chave "união" define a união bastante semelhante à declaração da estrutura. A variável pode armazenar um valor de seqüência de caracteres que é "nome do empregado", um valor inteiro que é a "idade do empregado", ou um flutuador que representa o "salário do empregado".

Diferença entre Estrutura e União

1. Palavra-chave

A palavra-chave 'struct' é usada para definir uma estrutura, enquanto a palavra-chave 'union' é usada para definir uma união.

2. Alocação de memória

O espaço de memória separado é atribuído aos membros dentro de uma estrutura e os membros têm endereços diferentes que não compartilham memória. Uma união, por outro lado, compartilha o mesmo espaço de memória para todos os seus membros, de modo que a localização da memória compartilhada é alocada.

3. Acesso para membros

Uma união armazena um único valor de cada vez para todos os seus membros acessando apenas um membro por vez. Enquanto vários valores podem ser armazenados em uma estrutura para que qualquer valor de membro possa ser acessado e recuperado a qualquer momento.

4. Tamanho

O tamanho de uma estrutura é igual à soma do tamanho de todos os membros ou mais, enquanto o tamanho de uma união é igual ao tamanho do membro de tamanho maior.

5. Inicialização

Em uma estrutura, vários membros podem ser inicializados ao mesmo tempo, enquanto que em uma união, somente o primeiro membro pode ser inicializado com o valor de seu tipo.

5. Valor

Uma estrutura pode armazenar valores diferentes de todos os membros e alterar o valor de um membro não terá nenhum efeito nos valores de outros membros. Enquanto uma união armazena o mesmo valor para todos os seus membros e a mudança de valor de um membro afetará o valor de outro.

Estrutura vs. União

Estrutura União
A palavra-chave Struct é usada para definir uma estrutura. A palavra-chave Union é usada para definir uma união.
Os membros não compartilham memória em uma estrutura. Os membros compartilham o espaço da memória em uma união.
Qualquer membro pode ser recuperado a qualquer momento em uma estrutura. Apenas um membro pode ser acessado em um momento em uma união.
Vários membros de uma estrutura podem ser inicializados ao mesmo tempo. Somente o primeiro membro pode ser inicializado.
O tamanho da estrutura é igual à soma do tamanho de cada membro. O tamanho da união é igual ao tamanho do maior membro.
Alterar o valor de um membro não afetará o valor de outro. A alteração no valor de um membro afetará os outros valores dos membros.
Armazena valores diferentes para todos os membros. armazena o mesmo valor para todos os membros.

Resumo

  • Tanto a estrutura como a união são tipos de dados definidos pelo usuário em C que são funcionalmente e conceitualmente os mesmos ainda são bastante diferentes de algumas maneiras.
  • Ambos contêm variáveis ​​de diferentes tipos de dados, mas usam a mesma sintaxe para a declaração de variáveis ​​e acessando membros. Enquanto uma estrutura é definida pela palavra-chave 'struct', uma união é definida pela palavra-chave 'união'.
  • Cada membro obtém uma localização de memória separada em uma estrutura, enquanto que em uma união, o espaço de memória total é equivalente ao membro de tamanho maior. Todos os membros compartilham o mesmo espaço de memória em uma união.
  • Qualquer membro em qualquer sequência pode ser acessado em uma estrutura, enquanto que em uma união, apenas essa variável pode ser acessada cujo valor foi armazenado recentemente.