Struttura vs Unione in C: differenza e confronto

Nel linguaggio di programmazione C esistono tipi di dati predefiniti e tipi di dati definiti dall'utente. Esempi di tipi di dati definiti dall'utente sono strutture e unioni in C.

In Structure and Union, gli utenti possono definire diversi tipi di dati e funzioni membro per accedere a tutte le variabili. Sebbene entrambi seguano la stessa sintassi, c'è una grande differenza tra loro.

Punti chiave

  1. Le strutture in C consentono di raggruppare variabili di diversi tipi di dati sotto un unico nome mantenendo allocazioni di memoria individuali per ciascun membro, consentendo l'archiviazione simultanea dei valori di tutti i membri.
  2. Le unioni in C consentono anche di raggruppare variabili di diversi tipi di dati sotto un unico nome ma condividono un'unica allocazione di memoria per tutti i membri, il che significa che è possibile memorizzare solo il valore di un membro alla volta.
  3. La differenza fondamentale tra strutture e unioni risiede nella loro allocazione della memoria e nella memorizzazione del valore, con strutture che utilizzano una memoria separata per ciascun membro e unioni che condividono la memoria tra tutti i membri.

Struttura vs Unione in C

Nella struttura, ogni membro dei dati di input ha una posizione di memoria specifica. Di conseguenza, è in grado di memorizzare numerosi valori per ciascun membro. Durante l'unione, viene allocata una singola memoria condivisa per tutti i membri dei dati di input. Di conseguenza, salva un singolo valore alla volta per tutti i membri.

Struttura vs Unione in C

Per esempio

                        Strutture di lavoro

                                    {

                                                Int denaro;

                                                Nome del personaggio;

                                    }s1;

In questo, la dimensione della memoria per la struttura allocata sarebbe 2+1 = 3 byte da la dimensione del numero intero è 1 byte e la dimensione del carattere è 2 byte. Quindi la dimensione sarà di 3 byte.

Leggi anche:  Ottieni account Netflix e password gratuiti (elenco gratuito di account Netflix)

` sindacato Lavoro

                                    {

                                                Int denaro;

                                                Nome del personaggio;

                                    }s1;

Nell'unione, la dimensione della memoria allocata sarà di 2 byte poiché la dimensione massima del tipo di dati nell'unione è di 2 byte, cioè il tipo di dati carattere.


 

Tavola di comparazione

Parametro per il confrontoUnioneStructure
Definizione delle parole chiaveUtilizza la parola chiave "unione".Utilizza la parola chiave "struct".
Dimensione della memoriaLa dimensione è uguale all'elemento della dimensione più grande.La dimensione è uguale alla somma di tutti gli elementi della struttura
Memoria condivisaTutta la memoria dell'elemento è condivisa con diversi elementiGli elementi della struttura non hanno memoria condivisa.
Accesso agli elementiÈ possibile accedere a un solo elemento alla voltaÈ possibile accedere a qualsiasi numero di elementi in qualsiasi momento
EsempioEsempio sindacale
{
Tipi di dati e membri
}oggetto;
esempio di struct
{
Tipi di dati e membri
}oggetto;
Aggiungilo ai preferiti ora per ricordarlo più tardi
Blocca questo

 

Cos'è la struttura in C?

La struttura è un gruppo di dati definito dall'utente che raccoglie vari tipi di dati. Il seguente esempio sarà piuttosto utile. Supponiamo che un programmatore debba memorizzare dati come uno studente, nome, classe, indirizzo e molti altri.

Bene, ci sono due modi per avvicinarsi questo problema, uno è creare diversi tipi di dati e un altro è creare una struttura.

In questo caso la struttura sarebbe vantaggiosa poiché, se crei le variabili separatamente, devi creare molte variabili per ogni studente, e sarebbe davvero un disastro. Invece, una struttura può essere utilizzata ancora e ancora.

Una struttura può essere creata utilizzando una parola chiave, struct.

Per esempio

Struct nome_struttura{

                        Tipo di dati nome_tipodidati;

Leggi anche:  OGG vs MP3: differenza e confronto

                        Tipo di dati nome_tipodidati;

                        Tipo di dati nome_tipodidati;

                        Tipo di dati nome_tipodidati;

                        ...

            };

Se vuoi accedere a uno qualsiasi dei membri dati, devi creare un oggetto, tale as

Struct nome_struttura nome_oggetto;

Con la sintassi object_name.datatype_name, sarai in grado di accedere al tipo di dati nella struttura.

 

Cos'è l'Unione in C?

Simile alle strutture, l'unione è un altro tipo di dati definito dall'utente nel linguaggio di programmazione C. Un tipo di dati definito dall'utente viene creato ogni volta che un programmatore definisce un'unione, ma non esiste una posizione di memoria.

Se si desidera allocare memoria, è necessario creare variabili nell'unione. Union ha una proprietà che non consente a nessun programmatore di accedere ai tipi di dati più di una volta.

Quindi, nell'unione, un programmatore può accedere a un membro dati alla volta. Facciamo un piccolo esempio.

            Unione nome_unione

            {

                                    tipo_dati nome_tipo dati;

                                    tipo_dati nome_tipo dati;

                                    tipo_dati nome_tipo dati;

                                    tipo_dati nome_tipo dati;

            };

Nell'esempio precedente, viene visualizzata la struttura di base di un'unione. È il modo in cui un programmatore crea l'unione. Se vuoi accedere a qualsiasi tipo di dati nell'unione, devi usarlo. Un operatore è simile alla struttura.

Unione nome_unione nome oggetto; Con l'istruzione precedente, puoi creare l'oggetto che ti aiuterà ad accedere a qualsiasi membro dei dati nell'unione utilizzando l'operatore punto.


Principali differenze tra struttura e unione in C

  1. Una struttura è un tipo di dati definito dall'utente che memorizza tipi di dati di diverso tipo. Inoltre, viene utilizzato per rappresentare una raccolta di valori dei tipi di dati. Se un programmatore deve definire un'unione, deve utilizzare la parola chiave struct. Allo stesso tempo, un'unione necessita di una parola chiave union per la definizione.
  2. In una struttura, tutti i tipi di dati sono archiviati in posizioni diverse ed è possibile accedere a più membri dati. Mentre in un'unione, tutti i membri dati condividono l'esatta posizione di memoria ed è possibile accedere a un solo membro dati alla volta.
  3. Nella struttura, per l'inizializzazione di qualsiasi membro, è possibile inizializzare più membri contemporaneamente, ma solo il primo membro può essere inizializzato nel caso di un'unione.
  4. La dimensione totale della struttura dipende dalla somma delle dimensioni dei membri dati, mentre nel caso di un'unione, la dimensione è uguale al membro dati la cui dimensione è la più grande tra tutte.
  5. Nella struttura, ogni tipo di dati ha una diversa allocazione di memoria, mentre, nell'unione, viene allocata una singola memoria per il membro di dati più grande.
Differenza tra X e Y 42
Bibliografia
  1. Strutture e Unione – C Tutorial | www.intellipaat.com
  2. Unioni nella programmazione C: definizione ed esempio

Vuoi salvare questo articolo per dopo? Fai clic sul cuore nell'angolo in basso a destra per salvare nella casella dei tuoi articoli!

Chi Autore

Chara Yadav ha conseguito un MBA in Finanza. Il suo obiettivo è semplificare gli argomenti relativi alla finanza. Ha lavorato nella finanza per circa 25 anni. Ha tenuto numerosi corsi di finanza e banche per business school e comunità. Leggi di più su di lei pagina bio.