Logo pt.removalsclassifieds.com

Diferença entre estrutura e união em C (com tabela)

Índice:

Anonim

Na linguagem de programação C, existem tipos de dados predefinidos e tipos de dados definidos pelo usuário. Exemplos de tipos de dados definidos pelo usuário são estruturas e uniões em C.

Em Estrutura e União, os usuários podem definir diferentes tipos de dados e funções de membro para acessar todas as variáveis. Embora ambos sigam a mesma sintaxe, há uma grande diferença entre eles.

Estrutura vs União em C

Na Estrutura, o tamanho total da memória é igual à soma dos tamanhos de todos os tipos de dados na estrutura. Enquanto em Union, o tamanho total do espaço de memória é igual ao tamanho do maior tipo de dados na união. É uma das diferenças mais importantes entre estrutura e união.

Por exemplo

Trabalho Estrutural

{

Dinheiro interno;

Nome do personagem;

} s1;

Nesse caso, o tamanho da memória para a estrutura alocada seria 2 + 1 = 3 bytes, já que o tamanho do inteiro é de 1 byte e o tamanho do char é de 2 bytes. Portanto, o tamanho será de 3 bytes.

`Trabalho sindical

{

Dinheiro interno;

Nome do personagem;

} s1;

Na união, o tamanho da memória alocada será de 2 bytes, pois o tamanho máximo do tipo de dados na união é de 2 bytes, ou seja, tipo de dados de caractere.

Tabela de comparação entre estrutura e união em C (na forma tabular)

Parâmetro para Comparação União Estrutura
Definição de palavra-chave Usa a palavra-chave “união” Usa a palavra-chave “struct”
Tamanho da memória O tamanho é igual ao elemento de maior tamanho. Tamanho igual à soma de todos os elementos da estrutura
Memoria compartilhada Toda a memória do elemento é compartilhada com diferentes elementos Os elementos da estrutura não têm memória compartilhada.
Acesso ao Elemento Apenas um único elemento é acessado de uma só vez Qualquer número de elementos pode ser acessado a qualquer momento
Exemplo Exemplo de união {Tipos de dados e membros} obj; exemplo de estrutura {Tipos de dados e membros} obj;

O que é estrutura em C?

Estrutura é um grupo de dados definido pelo usuário e é a coleção de vários tipos de dados. O exemplo a seguir será bastante útil. Vamos supor que um programador precise armazenar alguns dados como aluno, nome, classe, endereço e muitos mais.

Bem, existem duas maneiras de abordar esse problema, uma é criar diferentes tipos de dados e outra é criar uma estrutura.

Neste caso, a estrutura seria vantajosa, pois, se você criar variáveis ​​separadamente, será necessário criar muitas variáveis ​​para cada aluno, e isso seria realmente um desastre. Em vez disso, uma estrutura pode ser usada repetidamente.

Uma Estrutura pode ser criada usando uma palavra-chave, struct.

Por exemplo

Struct structure_name {

Tipo de dados datatype_name;

Tipo de dados datatype_name;

Tipo de dados datatype_name;

Tipo de dados datatype_name;

};

Se você deseja acessar qualquer um dos membros de dados, você precisa criar um objeto como

Struct structure_name object_name;

Com a sintaxe object_name.datatype_name você poderá acessar o tipo de dados na estrutura.

O que é União em C?

Semelhante à união de estruturas é outro tipo de dados definido pelo usuário na linguagem de programação C. Sempre que um programador define uma união, um tipo de dados definido pelo usuário é feito, mas não há localização na memória.

Bem, se você deseja alocar memória, é necessário criar variáveis ​​na união. Union possui uma propriedade que não permite que nenhum programador acesse os tipos de dados mais de um.

Conseqüentemente, em união, um programador pode acessar um membro de dados por vez. Vamos dar um pequeno exemplo.

Union union_name

{

Data_type Datatype_name;

Data_type Datatype_name;

Data_type Datatype_name;

Data_type Datatype_name;

};

No exemplo acima, uma estrutura básica de união é exibida. É a maneira como um programador cria a união. Se você quiser acessar qualquer tipo de dado no sindicato, você precisa usá-lo. operador semelhante à estrutura.

Union union_name objname; Com a instrução acima você pode criar o objeto que o ajudará a acessar qualquer membro de dados na união usando o operador ponto.

Principais diferenças entre estrutura e união em C

  1. Uma estrutura é um tipo de dados definido pelo usuário que armazena os tipos de dados de diferentes tipos. Além disso, é usado para representar uma coleção de valores de tipos de dados. Se um programador precisa definir uma união, ele precisa usar a palavra-chave struct. Considerando que um sindicato precisa, uma palavra-chave sindical para definição.
  2. Em uma estrutura, todos os tipos de dados são armazenados em um local diferente e você pode acessar vários membros de dados. Enquanto na união todos os membros de dados compartilham o mesmo local de memória e apenas um único membro de dados pode ser acessado por vez.
  3. Na estrutura, para inicializar qualquer membro, vários membros podem ser inicializados ao mesmo tempo, mas em caso de união, apenas o primeiro membro pode ser inicializado.
  4. O tamanho total da estrutura depende da soma do tamanho de todos os membros de dados, enquanto no caso de união, o tamanho é igual ao membro de dados cujo tamanho é o maior entre todos.
  5. Na estrutura, cada tipo de dados tem uma alocação de memória diferente, enquanto na união, há uma única memória alocada para o membro de dados de maior tamanho.

Conclusão

Estrutura e uniões são tipos de dados definidos pelo usuário usados ​​na programação c. Estrutura e Uniões compartilham o mesmo conceito de armazenamento de vários tipos de dados. E todos os tipos de dados em estrutura e união são acessados ​​com um operador ponto.

Estruturas e uniões diferem apenas em termos de tamanho e alocação de memória, mas o caso de uso delas é o mesmo. Ambos aumentam a capacidade de reutilização do código e muito mais. Se você deseja armazenar muitos valores para um único tipo de dados, a estrutura e a união seriam úteis.

Um caso de uso básico de estrutura e união seria quando você precisa armazenar o registro de um trabalhador. Uma estrutura ou união armazenará todos os dados em estrutura ou união, e então você pode armazenar ou acessar os dados. A principal diferença é a alocação de memória e o acesso ao tipo de dados.

Diferença entre estrutura e união em C (com tabela)