Care este diferența dintre structura Uniunii și Enum în C

Structura este un tip de date care stochează diferite tipuri de date în aceeași locație de memorie; dimensiunea totală a memoriei structurii este sumarea dimensiunilor memoriei tuturor membrilor săi. În contrast, Union este un tip de date care stochează diferite tipuri de date în aceeași locație de memorie; dimensiunea totală a memoriei depinde de dimensiunea memoriei celor mai mari elemente. Între timp, Enum este un tip de date care stochează constante integrale. Aceasta este diferența principală dintre unirea structurii și enum în C.

În programare, o variabilă poate stoca o valoare a unui singur tip de date. Uneori, este necesar să stocați variabile de diferite tipuri ca o singură unitate. Structura și unirea sunt două metode pentru stocarea mai multor variabile de diferite tipuri ca o singură variabilă. Pe de altă parte, enum este un tip de date pentru a declara un set de constante numite. Toate acestea sunt tipuri de date definite de utilizator.

Domenii cheie acoperite

1. Ce este Structura
     - Definiție, funcționalitate
2. Ce este Uniunea
    - Definiție, funcționalitate
3. Ce este Enum
    - Definiție, funcționalitate
4. Care este diferența dintre structura Uniunii și Enum în C
    - Compararea diferențelor cheie

Termeni cheie

C, Enum, Structură, Uniune

Ce este Structura

O structură este o singură variabilă care poate conține date de mai multe tipuri. Este un set de variabile de tipuri diferite de date. Un exemplu de structură este după cum urmează.

Figura 1: Structura în C

Conform programului de mai sus, structura numită complex conține două proprietăți; real reprezintă partea reală a numărului complex, în timp ce img reprezintă partea imaginară a numerelor complexe. În programul principal, linia 10 declară două variabile de tip struct numite c1 și c2. Linia 11 până la linia 14 dă valori pentru real și img pentru fiecare c1 și c2. În linia 15, variabila r stochează suma valorilor reale ale lui c1 și c2. Similar, în linia 16, variabila i stochează suma img a valorilor lui c1 și c2. În cele din urmă, sumarea numerelor complexe se afișează pe consola.

Ce este Uniunea

Uniunea permite stocarea diferitelor tipuri de date în aceeași locație de memorie. De exemplu, un angajat poate avea proprietăți cum ar fi numele, salariul și orașul. În loc să creeze variabile pentru fiecare dintre ele, este posibil să se folosească o uniune. Acesta compacte toate tipurile diferite de date într-o singură unitate.

Figura 2: Uniunea în C

Distanța dintre două puncte p1 și p2 este după cum urmează.  

Distanța = (p2.a - p1.a) 2 + (p2.b - p1.b) 2

Conform programului de mai sus, Point este o uniune. Are două proprietăți: a și b. În programul principal, distanța, t1 și t2 sunt variabile de tip float; p1 și p2 sunt uniune de tip. Linia 12 la 15, dă valori la a și b ale p1 și a și b ale p2. t1 și t2 sunt variabile stocarea valori de putere. În linia 18, distanța variabilă stochează distanța dintre punctul p1 și p2. În final, răspunsul apare pe consola.

Uniunea și structura sunt foarte asemănătoare, dar ele au o diferență. În uniuni, memoria totală necesară pentru a stoca uniunea este memoria celui mai mare element al acelei uniuni. De exemplu, presupuneți că o uniune are trei proprietăți: nume, salariu și id. Numele ia 32 de octeți, iar salariul și ID-ul au câte 4 octeți fiecare. Cel mai mare este 32 biți, iar alocarea memoriei pentru unire este de 32 de octeți.

Ce este Enum

Enum înseamnă enumerare. Acesta este un tip de date definit de utilizator care constă în constante integrale. Un exemplu este după cum urmează.

Figura 3: Enum în C

Saptamana este un enum. În mod prestabilit, duminica are valoarea 0, Lunea are valoarea 1, marți are valoarea 2, etc. În programul principal, astăzi este un enum de săptămână de tip. Este atribuită vineri. A doua zi este sâmbătă și are o constantă de 6. Prin urmare, ieșirea "Ziua 6" se va afișa pe consola.

De exemplu, presupuneți că programatorul a declarat enum după cum urmează.

săptămâna enum sunday = 1, luni, marți, miercuri, joi, vineri, sâmbătă;

Apoi, programul principal va da rezultatul ca "Ziua 7".

Diferența dintre structura Uniunii și Enum în C

Definiție

Structura este un tip de date care stochează diferite tipuri de date în aceeași locație de memorie și a căror dimensiune totală a memoriei structurii este sumarea dimensiunilor memoriei tuturor membrilor. În schimb, Union este un tip de date care stochează diferite tipuri de date în aceeași locație de memorie și a căror dimensiune totală a memoriei depinde de dimensiunea memoriei celor mai mari elemente. Enum este un tip de date în limbajul C care reprezintă un tip de valoare pentru declararea unui set de constante numite. Aceste definiții subliniază diferența fundamentală dintre unirea structurii și enum în C.

cuvinte cheie

Cuvântul cheie pentru a declara o structură este "struct", în timp ce cuvântul cheie care declară o Uniune este "uniune", iar cuvântul cheie care declară un Enum este "enum".

folosire

Există o diferență între unirea structurii și enum în C pe baza utilizării lor, de asemenea. Atât structura, cât și uniunea ajută la stocarea datelor de diferite tipuri ca o singură unitate, în timp ce enum-ul ajută la alocarea constantelor unui set de nume pentru a facilita citirea, menținerea și înțelegerea programului. 

Concluzie

Structura este un tip de date care stochează diferite tipuri de date în aceeași locație de memorie; dimensiunea totală a memoriei structurii este sumarea dimensiunilor memoriei tuturor membrilor săi. În contrast, Union este un tip de date care stochează diferite tipuri de date în aceeași locație de memorie; dimensiunea totală a memoriei depinde de dimensiunea memoriei celor mai mari elemente. Între timp, Enum este un tip de date care stochează constante integrale. Astfel, aceasta este diferența principală dintre unirea structurii și enum în C.

Referinţă:

1. "Structura de programare C". String-uri Python (cu exemple), disponibil aici.
2. "Suniunile de programare C". Corzi Python (cu exemple), disponibil aici.
3. "Enumerarea Programării C". Șirul Python (cu exemple), disponibil aici.