Differenza tra struttura e unione in c

Differenza tra struttura e unione in c
Il linguaggio di programmazione C fornisce ai programmatori vari tipi di dati per archiviare i dati in memoria per l'elaborazione. Tra questi tipi di dati, le strutture e i sindacati ci sono due dati comunemente usati nella programmazione C per raggruppare più variabili di diversi tipi di dati in una singola unità. Sia le strutture che i sindacati sono definiti dal programmatore e servono scopi simili. Tuttavia, differiscono in diversi aspetti, tra cui archiviazione, allocazione della memoria e utilizzo.

L'articolo fornisce un'analisi comparativa tra struttura e unione nel linguaggio di programmazione C.

Struttura in c

Una struttura in C è un tipo di dati definito dall'utente che consente ai programmatori di raggruppare le variabili di diversi tipi di dati in una singola entità. Una struttura può contenere membri, che possono essere variabili di qualsiasi tipo di dati, come numeri interi, galleggianti, array o persino altre strutture. Per dichiarare una struttura in C, è necessario utilizzare la parola chiave "Struttura" seguito dal nome della struttura e delle sue variabili membri, come mostrato nell'esempio seguente:

Dichiarazione di una struttura in C

Di seguito è riportata la dichiarazione di struttura nella programmazione C.

struct_keyword struct_name
data_type1 membro1;
data_type2 membro2;
;

Unione in c

Un'unione in C è anche un tipo di dati definito dall'utente che consente al programmatore di archiviare diversi tipi di dati nella stessa posizione di memoria. A differenza delle strutture, i sindacati hanno una sola posizione di memoria condivisa da tutti i loro membri. Pertanto, un solo membro dell'Unione può accedervi contemporaneamente. La dimensione di un sindacato è misurata dalle dimensioni del suo membro più grande.

Dichiarazione di un sindacato in C

Ecco un esempio di come dichiarare un sindacato in C.

Union_Keyword Union_name
data_type1 membro1;
data_type2 membro2;
;

Differenza tra struttura e unione in c

La tabella seguente mostra la differenza tra struttura e unione nella programmazione C.

Caratteristica Struttura Unione
Definizione Raccolta di membri dei dati correlati La stessa posizione di memoria è condivisa da tutti i membri
Allocazione della memoria Assegna la memoria per tutti i membri Assegna la memoria per il membro più grande
Inizializzazione dei membri Può essere inizializzato singolarmente o nel suo insieme Può inizializzare solo un membro alla volta
Inizializzazione predefinita I membri vengono inizializzati in valori predefiniti I membri non sono inizializzati per impostazione predefinita
Calcolo delle dimensioni La somma delle dimensioni di tutti i membri Dimensione del membro più grande
Casi d'uso Utilizzato per archiviare più tipi di dati e accedervi insieme Utilizzato per salvare la memoria quando più tipi di dati condividono la stessa posizione di memoria
Accesso ai membri Utilizzando il nome del membro e il punto (.) operatore Utilizzando il nome del membro e il punto (.) operatore

Quello che segue è un esempio di codifica che illustra la differenza tra struttura e unione nella programmazione C.

#includere
struct mystruct
int a;
Char B;
;
Union Myunion
int x;
Char y;
;
int main ()
Struttura Mystruct Mystruct;
Mystruct.a = 10;
Mystruct.b = 'a';
Union Myunion Myunion;
Myunion.x = 10;
Myunion.y = 'a';
printf ("valori struct: %d, %c \ n", mystruct.A, mystruct.B);
printf ("Valori sindacali: %d, %c \ n", myunion.X, Myunion.y);
restituzione 0;

Nel codice sopra, abbiamo definito una struttura denominata Mystruct che contiene un numero intero e un personaggio e un'unione chiamata Myunion che contiene anche un numero intero e un personaggio. Quindi creiamo istanze di entrambi Mystruct E Myunion e imposta i loro valori. Impostiamo il valore intero di entrambi su 10 e il valore del carattere di entrambi a 'UN'.

Quando stampiamo i valori della struttura e dell'unione, possiamo vedere che la struttura ha variabili separate per l'intero e il carattere e ogni variabile mantiene il suo valore. L'output è mostrato di seguito:

Conclaudizione

Struttura e unione sono due diversi dati che hanno la sintassi simile in lingua C. Sono diversi in alcuni aspetti come archiviazione, allocazione della memoria, usabilità e altre funzionalità. Questo articolo presenta una guida facile per trovare un confronto dettagliato tra struttura e unione seguito da esempi di codifica che si differenziano chiaramente nella programmazione C.