Unione in c

Unione in c

Come la struttura dell'unione è anche un concetto importante in c. Esistono due tipi in cui esiste il tipo di dati in C. Sono tipi di dati primitivi e tipi di dati non prigioni o definiti dall'utente. L'Unione è un esempio di un tipo di dati non prime.

Quali sono l'unione e le sue caratteristiche principali

L'unione è un modo per raggruppare le variabili. A volte dobbiamo archiviare alcune informazioni in un gruppo.

Supponiamo di dover archiviare le informazioni di alcune studenti. Informazioni significano il loro nome, indirizzo, mobile no, genere, marchi, aggregati, ecc. Una situazione si verifica quando un solo membro dei dati di questo gruppo di variabili deve contenere un valore alla volta. In questa situazione, se archiviamo questi dati alle molteplici variabili per ogni studente, il programma diventa molto complesso e aumenta la velocità di esecuzione del programma.

Per ridurre questo problema, introduciamo l'unione. Con l'aiuto dell'Unione, possiamo raggruppare queste variabili di ogni studente in una singola variabile e contenere uno di questi gruppi di variabili alla volta.

L'Unione è una raccolta di elementi diversi. Dissimile significa che possiamo archiviare valori di tipo di dati diversi come int, char, galleggiante, stringa, ecc.

Se archiviamo le informazioni di uno studente, dobbiamo archiviare il proprio nome, segni, mobile no, ecc. Il nome è una stringa, mark è un galleggiante, il cellulare no è un array intero. Quindi è un gruppo di elementi diversi.

Definizione dell'Unione significa creare un nuovo tipo di dati, E sappiamo che la creazione di un nuovo tipo di dati significa che utilizziamo qui il tipo di dati non prime.

L'Unione è un tipo di dati definito dall'utente simile alla struttura. Ma i membri dell'Unione condividono la stessa posizione di memoria.

Esempio

Esempio dell'Unione


int x;
Char y;
e;

Se stampiamo l'indirizzo di X e Y., Possono contenere la stessa posizione dell'indirizzo

Ci possono esistere diversi tipi di membri dei dati nell'Unione. Ma la dimensione dell'Unione viene calcolata in base al più grande membro dei dati presenti nell'Unione.

Esempio di programmazione 1

#includere
Articolo dell'Unione // Definizione di un'altra unione;

int x;
galleggiare y;
Char Z;
;
int main ()

printf (“ %d”, sizeof (articolo sindacale));
restituzione 0;

Produzione

Spiegazione

Qui definiamo un'unione chiamata oggetto. I membri dei dati di questa unione sono rispettivamente dati di X, Y e Z, che sono dati interi, galleggianti e tipi di carattere. Ora all'interno della funzione principale (), utilizziamo l'operatore di dimensione per determinare la dimensione dell'elemento del tipo di dati. Ottiene l'output 4 poiché il tipo di dati float è il tipo di dati più alto presente nell'unione come membro dei dati.

Come definire un'unione

Esempio sindacale // Definizione di un sindacato;

tipo di dati var1;
tipo di dati var2;
-------------------- ;
Tipo di dati Varn;
;
Articolo dell'Unione // Definizione di un'altra unione;

int x;
galleggiare y;
Char Z;
;

Consumo di memoria

Nessuna memoria viene consumata per la definizione di unione. Perché la memoria viene consumata al momento della dichiarazione di una variabile ma non nel caso di definizione del tipo di dati.

Poiché la definizione dell'unione significa creare un nuovo tipo di dati, la memoria non viene consumata. La memoria viene consumata al momento della dichiarazione di un particolare tipo di variabile.

Struttura vs. Unione

Articolo di strumento Articolo dell'Unione

Articolo di strumento Articolo dell'Unione

int x; int x;
galleggiare y; galleggiare y;
Char Z; Char Z;

Elemento struct i1; Articolo dell'Unione I1;

Spiegazione

Nella struttura, possiamo creare la posizione della memoria per un gruppo di variabili. Tutto il membro dei dati della struttura contiene memoria alla volta.

Laddove in un sindacato, possiamo creare il blocco di memoria della memoria più alta che esiste come variabile membro.

Nella struttura creiamo una struttura che prende (2 + 4 + 1) = 7 byte. Come intero, galleggiante, char prende rispettivamente 2, 4 e 1 byte.

Laddove nell'unione, creiamo un sindacato che prende 4 byte blocco di memoria poiché la variabile del tipo di dati float esiste qui come la variabile del tipo di dati più elevato.

Vantaggi dell'Unione

Con l'aiuto dell'Unione, possiamo accedere a qualsiasi dati una volta alla volta. Se vogliamo accedere a un'altra variabile membro, significa che la variabile o il valore della variabile sovrascrive il valore precedente di una variabile. Significa che prende il valore dell'ultima variabile che esiste nell'Unione.

Esempio di programmazione 2

#includere
Articolo dell'Unione // Definizione di un'altra unione;

int x;
galleggiare y;
Char Z;
;
int main ()

Articolo dell'Unione I1;
i1. x = 5;
printf ("\ n x = %d", i1. X ) ;
i1. y = 3. 5;
printf ("\ n y = %f", i1. y);
i1. z = 'a';
printf (“\ n z = %c \ n”, i1. z);
restituzione 0;

Produzione

Spiegazione

Dall'output, possiamo avere la percezione sbagliata che l'Unione consuma spazio di memoria (2 + 4 + 1) = 7 byte. Ma è una percezione sbagliata. Perché quando utilizziamo la variabile intera, possiamo usarlo. Quindi usiamo la variabile float; quella variabile sovrascrive il valore di x.

Dopo aver usato il valore di y, se vogliamo stampare di nuovo il valore di x, ottiene l'output x = 0. Può consumare la memoria di una variabile in un momento della variabile del tipo di dati più elevato.

Esempio di programmazione 3

#includere
Esempio sindacale // Definizione di un'altra unione;

int x;
Char Z;
; u;
int main ()

u. x = 65;
printf ("x = %d \ n", u. X) ;
printf ("z = %c \ n", u. z);
restituzione 0;

Produzione

Spiegazione

Qui definiamo un'unione nominata. All'interno del sindacato, ci sono due membri di dati che esistono. Uno è la variabile tipo di tipo intero x; Un altro è la variabile tipo di carattere z. All'interno della funzione principale (), x è assegnato 65.

Ora, se stampiamo il valore di X, allora mostra un valore di 65. Sorprendentemente se stampiamo il valore di y, mostra il risultato a. Poiché i membri dei dati dell'Unione condividono la stessa posizione dell'indirizzo della nostra memoria e il valore binario di 65 è A, mostra il risultato A come valore del carattere.

Conclusione

Come la struttura dell'unione è anche un concetto importante in c. Attraverso il sindacato, apprendiamo che molti membri o variabili di dati possono condividere la stessa posizione dell'indirizzo nella nostra memoria. Quindi è una caratteristica unica dell'Unione.