Qual è la differenza tra Structure Union ed Enum in C

La struttura è un tipo di dati che memorizza diversi tipi di dati nella stessa posizione di memoria; la dimensione totale della memoria della struttura è la somma delle dimensioni della memoria di tutti i suoi membri. Al contrario, Union è un tipo di dati che memorizza diversi tipi di dati nella stessa posizione di memoria; la dimensione totale della memoria dipende dalla dimensione della memoria dei suoi elementi più grandi. Nel frattempo, Enum è un tipo di dati che memorizza costanti integrali. Questa è la principale differenza tra l'unione della struttura e l'enum in C.

Nella programmazione, una variabile può memorizzare un valore di un singolo tipo di dati. A volte, è necessario memorizzare variabili di tipi diversi come una singola unità. Struttura e unione sono due metodi per memorizzare più variabili di tipi diversi come una singola variabile. D'altra parte, enum è un tipo di dati per dichiarare un insieme di costanti nominate. Tutti questi sono tipi di dati definiti dall'utente.

Aree chiave coperte

1. Cos'è la struttura
     - Definizione, Funzionalità
2. Cos'è l'Unione
    - Definizione, Funzionalità
3. Cos'è Enum
    - Definizione, Funzionalità
4. Qual è la differenza tra Structure Union ed Enum in C
    - Confronto tra le principali differenze

Parole chiave

C, Enum, Struttura, Unione

Cos'è la struttura

Una struttura è una singola variabile che può contenere dati di più tipi. È un insieme di variabili di tipi di dati diversi. Un esempio di una struttura è il seguente.

Figura 1: Struttura in C

Secondo il programma di cui sopra, la struttura chiamata complesso contiene due proprietà; il reale rappresenta la parte reale del numero complesso mentre img rappresenta la parte immaginaria dei numeri complessi. Nel programma principale, la riga 10 dichiara due variabili di tipo struct chiamate c1 e c2. La riga 11 alla riga 14 fornisce valori reali e img di c1 e c2. Nella riga 15, la variabile r memorizza la somma dei valori reali di c1 e c2. Analogamente, nella riga 16, la variabile i memorizza la somma dei valori img di c1 e c2. Infine, la sommatoria dei numeri complessi viene visualizzata sulla console.

Cos'è l'Unione

Union consente di memorizzare vari tipi di dati nella stessa posizione di memoria. Ad esempio, un Dipendente può avere proprietà come nome, salario e città. Invece di creare variabili per ognuno di essi, è possibile utilizzare un sindacato. Compatta tutti i diversi tipi di dati in una singola unità.

Figura 2: Unione in C

La distanza tra due punti p1 e p2 è la seguente.  

Distanza = (p2.a - p1.a) 2 + (p2.b - p1.b) 2

Secondo il programma di cui sopra, Point è un'unione. Ha due proprietà: a e b. Nel programma principale, la distanza, t1 e t2 sono variabili di tipo float; p1 e p2 sono di tipo union. Riga da 12 a 15, dà valori a aeb di p1 e aeb di p2. t1 e t2 sono variabili memorizza i valori di potenza. Nella riga 18, la distanza variabile memorizza la distanza tra i punti p1 e p2. Infine, la risposta viene visualizzata sulla console.

Unione e struttura sono molto simili, ma hanno una differenza. Nei sindacati, la memoria totale richiesta per memorizzare l'unione è la memoria del più grande elemento di quell'unione. Ad esempio, supponiamo che un'unione abbia tre proprietà: nome, stipendio e id. Il nome accetta 32 byte e lo stipendio e l'id richiedono 4 byte ciascuno. Il più grande è 32 byte e l'allocazione di memoria per l'unione è di 32 byte.

Cos'è Enum

Enum sta per enumerazione. È un tipo di dati definito dall'utente che consiste di costanti integrali. Un esempio è il seguente.

Figura 3: Enum in C

La settimana è un enum. Per impostazione predefinita, la domenica ha il valore 0, il lunedì ha il valore 1, il martedì ha il valore 2, ecc. Nel programma principale, oggi è presente una enumerazione di tipo settimana. È assegnato con il venerdì. Il giorno successivo è sabato, ed è costante 6. Pertanto, l'output "Giorno 6" verrà visualizzato sulla console.

Ad esempio, si supponga che il programmatore abbia dichiarato l'enumerazione come segue.

enum week domenica = 1, lunedì, martedì, mercoledì, giovedì, venerdì, sabato;

Quindi, il programma principale darà l'output come "Giorno 7".

Differenza tra struttura Union ed Enum in C

Definizione

La struttura è un tipo di dati che memorizza diversi tipi di dati nella stessa posizione di memoria e la cui dimensione di memoria totale della struttura è la somma delle dimensioni di memoria di tutti i suoi membri. Al contrario, Union è un tipo di dati che memorizza diversi tipi di dati nella stessa posizione di memoria e la cui dimensione totale della memoria dipende dalla dimensione della memoria dei suoi elementi più grandi. Enum è un tipo di dati in linguaggio C che rappresenta un tipo di valore per la dichiarazione di un insieme di costanti nominate. Queste definizioni delineano la differenza fondamentale tra unione strutturale ed enum in C.

Parola chiave

La parola chiave per dichiarare una struttura è 'struct' mentre la parola chiave per dichiarare un'unione è 'union', e la parola chiave per dichiarare un'enum è 'enum'.

uso

Esiste una differenza tra l'unione della struttura e l'enum in C in base al loro utilizzo. Sia la struttura che l'unione aiutano a memorizzare i dati di diversi tipi come una singola unità mentre enum aiuta ad assegnare costanti a un insieme di nomi per rendere il programma più facile da leggere, mantenere e comprendere. 

Conclusione

La struttura è un tipo di dati che memorizza diversi tipi di dati nella stessa posizione di memoria; la dimensione totale della memoria della struttura è la somma delle dimensioni della memoria di tutti i suoi membri. Al contrario, Union è un tipo di dati che memorizza diversi tipi di dati nella stessa posizione di memoria; la dimensione totale della memoria dipende dalla dimensione della memoria dei suoi elementi più grandi. Nel frattempo, Enum è un tipo di dati che memorizza costanti integrali. Quindi, questa è la differenza principale tra l'unione della struttura e l'enum in C.

Riferimento:

1. "Struttura di programmazione C". Python Strings (con esempi), disponibile qui.
2. "C Programming Unions." Python Strings (con esempi), disponibile qui.
3. "C Programming Enumeration." Python Strings (con esempi), disponibile qui.