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

Diferença entre Estrutura e União

O que é Estrutura?


Estrutura é um tipo de dados definido pelo usuário na linguagem de programação C que combina itens de dados logicamente relacionados de diferentes tipos de dados juntos.

Todos os elementos da estrutura são armazenados em locais de memória contíguos. A variável do tipo de estrutura pode armazenar mais de um item de dados de vários tipos de dados sob um nome.

Neste tutorial, você aprenderá:

O que é União


União é um tipo de dados definido pelo usuário, assim como uma estrutura. União combina objetos de diferentes tipos e tamanhos juntos. A variável de união aloca o espaço de memória igual ao espaço para conter a maior variável de união. Ele permite que vários tipos de objetos compartilhem o mesmo local.

Sintaxe da estrutura declarativa

struct [name of the structure]
   {
       type member1;
       type member2;
       type member3;
   };

A estrutura é declarada usando a palavra-chave “struct” e o nome da estrutura. Número 1, número 2, número 3 são membros individuais da estrutura. A parte do corpo termina com um ponto e vírgula (;).

Exemplo de estrutura em programação C

#include <stdio.h>
struct student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main() {
    printf("Enter the following information:\n");
    printf("Enter student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Enter student roll number: ");
    scanf("%d", & sdt. roll_no);
    printf("Enter students marks: ");
    scanf("%f", & sdt.marks);
    printf("The information you have entered is: \n");
    printf("Student name: ");
    printf("%s", sdt.name);
    printf("Student roll number: %d\n", sdt. roll_no);
    printf("Student marks: %.1f\n", sdt.marks);
    return 0;
}

No programa acima, uma estrutura chamada aluno é criada. Essa estrutura tem três membros de dados:1) nome (string), 2) roll_no (inteiro) e 3) marcas (float).

Após isso, uma variável de estrutura sdt é criada para armazenar as informações do aluno e exibi-las na tela do computador.

Saída:

Insira as seguintes informações:

Digite o nome do aluno:Tiago

Digite o número do cadastro do aluno:21

Digite as notas dos alunos:67

As informações que você digitou são:

Nome do aluno:João

Número do registro do aluno:21

Notas dos alunos:67,0

Sintaxe de Declaring Union

union [name of union]
    {
       type member1;
       type member2;
       type member3;
    };

A união é declarada usando a palavra-chave “união” e o nome da união. Número 1, número 2, número 3 são membros individuais do sindicato. A parte do corpo termina com um ponto e vírgula (;).

Exemplo de União em Programação C

#include <stdio.h>

union item
{
    int x;
    float y;
    char ch;
};

int main( )
{
    union item it;
    it.x = 12;
    it.y = 20.2;
    it.ch = 'a';
    
    printf("%d\n", it.x);
    printf("%f\n", it.y);
    printf("%c\n", it.ch);
    
    return 0;
}

Saída:

1101109601

20.199892

uma

No programa acima, você pode ver que os valores de x e y são corrompidos. Apenas a variável ch imprime o resultado esperado. É porque, na união, a localização da memória é compartilhada entre todos os tipos de dados membros.

Portanto, o único membro de dados cujo valor está armazenado no momento ocupará espaço de memória. O valor da variável ch foi finalmente armazenado, então o valor do resto das variáveis ​​é perdido.

Estrutura vs. União



Aqui está a diferença importante entre estrutura e união:
Estrutura União Você pode usar uma palavra-chave struct para definir uma estrutura. Você pode usar uma palavra-chave union para definir uma união. Cada membro dentro da estrutura recebe um local de memória exclusivo. Na união, um local de memória é compartilhado por todos os membros de dados. Alterando o valor de um membro de dados não afetará outros membros de dados na estrutura.Mudar o valor de um membro de dados mudará o valor de outros membros de dados na união.Permite inicializar vários membros de uma vez.Permite inicializar apenas o primeiro membro de união.O tamanho total da estrutura é a soma do tamanho de cada membro de dados.O tamanho total da união é o tamanho do maior membro de dados.É usado principalmente para armazenar vários tipos de dados.É usado principalmente para armazenar um dos muitos tipos de dados disponíveis. Ocupa espaço para cada membro escrito em parâmetros internos. Ocupa espaço para um membro com o maior tamanho escrito em parâmetros internos. Você pode recuperar qualquer membro de cada vez. Você pode acessar um membro er de cada vez na união. Suporta array flexível. Não suporta array flexível.

Vantagens da estrutura


Aqui estão os prós/benefícios de usar a estrutura:

Vantagens da união


Aqui estão os prós/benefícios do uso do sindicato:

Desvantagens da estrutura


Aqui estão os contras/desvantagens do uso da estrutura:

Desvantagens da união


Aqui estão os contras/desvantagens do uso da união:

DIFERENÇAS PRINCIPAIS:


Linguagem C

  1. Diferença entre amianto e fibra de vidro
  2. Diferença entre estrutura e classe:explicada com exemplo de C++
  3. C# vs. C++:Qual é a diferença entre C# e C++?
  4. Diferença entre C e C++
  5. Diferença entre C e Java
  6. Diferença entre strlen() e sizeof() para string em C
  7. Python vs JavaScript:Diferença entre JavaScript e Python
  8. A diferença entre motores CC e CA
  9. Diferença entre brasagem e solda
  10. Diferença entre motores 2 tempos e 4 tempos