O melhor tutorial união C em 2024. Neste tutorial você pode aprender Definição de união,membro de união de acesso,

união C

União é um tipo especial de dados, permitindo que você para um local diferente no mesmo tipo de dados armazenados na memória.Você pode definir uma união com mais membros, mas a qualquer momento pode haver apenas um membro com o valor. Sindicatos fornecem uma maneira de usar o mesmo local de memória de uma forma eficaz.

Definição de união

Para definir uma união, você deve usar declaraçõessindicais e definir a estrutura de uma forma similar.Declaração da União define um novo tipo de dados, com uma pluralidade de membros. formato de declaração da União é a seguinte:

union [union tag]
{
   member definition;
   member definition;
   pt.
   member definition;
} [one or more union variables];  

tag união é opcional, cada definição de membro é a definição padrão de uma variável, como int i; ou float f, ou outras definições de variáveis válidos.Antes do final do ponto e vírgula final de corpo comum definido, você pode especificar uma ou mais das variáveis ​​de união, que é opcional. A seguinte definição de um tipo de corpo comum denominado de dados, há três membros I, F e str:

union Data
{
   int i;
   float f;
   char  str[20];
} data;  

Agora, o tipode dados variável pode armazenar um número inteiro, um float, ou uma string.Isto significa que uma variável (a mesma posição de memória) pode armazenar uma pluralidade de diferentes tipos de dados. Você pode usar quaisquer tipos de dados internos ou definidos pelo usuário em um corpo comum, conforme necessário.

União deve ser suficiente memória de armazenamento ocupada pela maior membro da união. Por exemplo, no exemplo acima, os dados ocupam 20 bytes de espaço de memória, porque cada membro, o espaço ocupado pela corda é maior. O exemplo a seguir irá mostrar a união acima ocuparam a dimensão total da memória:

#include <stdio.h>
#include <string.h>
 
union Data
{
   int i;
   float f;
   char  str[20];
};
 
int main( )
{
   union Data data;        

   printf( "Memory size occupied by data : %d\n", sizeof(data));

   return 0;
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

Memory size occupied by data : 20

membro de união de acesso

Para ter acesso aos países membros comuns, usamoso operador de acesso de membro (.).operador de acesso de membro é um período nomes de variáveis ​​e sindicalistas de nossa união para ser acessado entre os dois. Você pode usar a palavra-chave para definir variáveis tipo de uniãounião.O exemplo seguinte demonstra a utilização de uma união:

#include <stdio.h>
#include <string.h>
 
union Data
{
   int i;
   float f;
   char  str[20];
};
 
int main( )
{
   union Data data;        

   data.i = 10;
   data.f = 220.5;
   strcpy( data.str, "C Programming");

   printf( "data.i : %d\n", data.i);
   printf( "data.f : %f\n", data.f);
   printf( "data.str : %s\n", data.str);

   return 0;
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

data.i : 1917853763
data.f : 4122360580327794860452759994368.000000
data.str : C Programming

Aqui podemos ver os valores dos membrosi e sindicais festão danificados, porque os valores atribuídos às variáveis da última posição de memória ocupada, que são os membrosstrrazão para a saída intacta. Agora vamos olhar para um único e mesmo exemplo, desta vez, vamos usar apenas uma variável ao mesmo tempo, ele também demonstra a finalidade principal de usar uma união:

#include <stdio.h>
#include <string.h>
 
union Data
{
   int i;
   float f;
   char  str[20];
};
 
int main( )
{
   union Data data;        

   data.i = 10;
   printf( "data.i : %d\n", data.i);
   
   data.f = 220.5;
   printf( "data.f : %f\n", data.f);
   
   strcpy( data.str, "C Programming");
   printf( "data.str : %s\n", data.str);

   return 0;
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

data.i : 10
data.f : 220.500000
data.str : C Programming

Aqui, todos os membros podem saída intacta, porque, ao mesmo tempo utiliza apenas um membro.

união C
10/30