Diferența dintre structură și Uniune în C

Diferența cheie - structura vs Uniune în C
 

Un matrice este o structură a datelor, susținută de limbajul C. O matrice poate fi utilizată pentru a stoca elemente de date de același tip. Dacă există o declarație ca int mark [10]; atunci mărcile sunt o matrice care poate stoca zece mărci și toate acestea sunt numere întregi. Uneori este necesar să stocați elemente de date de diferite tipuri în aceeași locație de memorie. De exemplu, un angajat poate avea un ID de angajat, nume, departament, vârstă etc. Acestea sunt de tipuri diferite de date. Prin urmare, este necesar să existe o metodă de stocare a diverselor elemente de date ca o singură unitate. Structurile și uniunile din C sunt utilizate pentru stocarea elementelor de date de diferite tipuri în aceeași locație de memorie. O structură și o uniune sunt similare, dar ele se diferențiază în principal din cauza alocării memoriei. Memoria necesară pentru a stoca o variabilă de structură este sumarea mărimii memoriei tuturor membrilor. Memoria necesară pentru a stoca o variabilă union este memoria necesară pentru cel mai mare element al uniunii. Acesta este diferența cheie între structură și uniune în C. Acest articol discută diferența dintre structură și uniune în C.

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este Structura în C
3. Ce este Uniunea în C
4. Asemănări între structură și Uniune în C
5. Comparație între ele - structură vs. Uniune în C în formă tabulară
6. rezumat

Ce este Structura în C?

O structură este un tip de date definit de utilizator în C. Acesta ajută la combinarea elementelor de date de diferite tipuri. O structură poate reprezenta înregistrări. Un student poate avea student_id, student_name etc. În loc să stocheze fiecare variabilă separat, toate aceste elemente de date diferite pot fi compacte într-o singură unitate utilizând o structură. Acesta este definit folosind cuvântul cheie "struct". Într-o structură, toți membrii săi pot fi accesați în orice moment. Următorul creează un tip de date derivat struct Student.

struct Student

intstudent_id;

char student_name [20];

;

Pentru structura de mai sus, variabilele pot fi declarate după cum urmează.

struct Student student1, student2, student3;

Există două metode de accesare a membrilor structurii. Aceasta este folosirea operatorului membru (.) Și a operatorului indicatorului structurii (->). Membrii pot fi accesați utilizând nume_clasă_variabilă. numele membrului. Dacă programatorul dorește să acceseze numele studentului 2, atunci el poate scrie declarația ca printf (student2.student_namename);

Consultați programul de mai jos cu o structură.

Figura 01: Programul C cu structuri

Conform programului de mai sus, Studentul este o structură. Acesta conține student_id și student_name. Două variabile de tip structură sunt declarate în programul principal. Ele sunt numite student1 și student2. ID-ul elevului1 este alocat cu valoarea 1 utilizând operatorul membru ca student1.student_id = 1. Numele "Ann" este un șir. Prin urmare, acesta este copiat la elementul student_name folosind funcția strcpy de copiere șir. Id-ul și numele sunt atribuite elevului2 într-un mod similar. În cele din urmă, aceste valori sunt imprimate utilizând operatorul membru.

Cantitatea de memorie necesară pentru stocarea unei variabile de structură este suma mărimii memoriei tuturor membrilor. Student_id conține 4 octeți și student_name conține 20 octeți (câte un byte pentru fiecare caracter). Totalul de 24 de octeți este suma mărimii memoriei cerute de structură.

Ce este Uniunea în C?

Unul este un tip de date definit de utilizator în C. Acesta ajută la stocarea diferitelor tipuri de date în aceeași locație de memorie. O carte poate avea proprietăți cum ar fi nume de carte, preț etc. În loc să creeze variabile pentru fiecare dintre ele, o uniune poate fi utilizată pentru a compacta toate tipurile de date diferite într-o singură unitate utilizând o uniune. Acesta este definit folosind cuvântul cheie "union". Următoarele creează o carte de date derivată din carte.

unionBook

caracterele [20];

preț dublu;

;

Pentru uniunea de mai sus, variabilele pot fi declarate după cum urmează.

sindicat Book book1, book2;

Există două modalități de accesare a membrilor uniunii. Aceasta este folosirea operatorului membru (.) Și a operatorului indicatorului structurii (->). Membrii pot fi accesați utilizând nume_variabil_name. numele membrului. Dacă programatorul dorește să acceseze numele cărții1, atunci poate scrie instrucțiunea printf (book1.name);

Consultați programul de mai jos cu o uniune.

Figura 02: Programul C folosind unirea

Conform programului de mai sus, Cartea este o uniune. Cartea 1 este o variabilă de tip union. Numele și prețul sunt valori atribuite. În uniune, doar unul dintre membrii săi poate fi accesat la un moment dat și toți ceilalți membri vor avea valori de gunoi. Valoarea id-ului nu se imprimă corect, dar valoarea de preț se imprimă corect.

Figura 03: Programul C modificat cu uniune

Conform programului de mai sus, Cartea este o uniune. Cartea1 și cartea2 sunt variabile de tip sindicat. Mai întâi, valoarea pentru numele de carte1 este atribuită și este tipărită. Apoi, valoarea pentru numele casetei 2 este atribuită și este imprimată. Toți membrii se imprimă corect deoarece un membru este folosit în același timp. Memoria necesară pentru a stoca o uniune este memoria necesară pentru cel mai mare element al uniunii. În programul de mai sus, variabila nume este de 20 de octeți. Este mai mare decât prețul. Deci, alocarea memoriei pentru unire este de 20 de octeți.

Care sunt asemănările dintre structură și Uniune în C?

  • Atât Structura, cât și Uniunea în C sunt tipuri de date definite de utilizator.
  • Atât Structura cât și Union în C pot fi folosite pentru a stoca diferite tipuri de date în aceeași locație de memorie.

Care este diferența dintre structură și Uniune în C?

Structura vs. Uniune în C

Structura este un tip de date definit de utilizator în limba C, care permite combinarea datelor de diferite tipuri. Uniunea este un tip de date definit de utilizator în limba C care permite combinarea datelor de diferite tipuri.
 Accesibilitate
Într-o structură, toți membrii săi pot fi accesați oricând. Într-o uniune, numai unul dintre membrii săi poate fi accesat la un moment dat și toți ceilalți membri vor conține valori pentru gunoi.
Alocare de memorie
Memoria necesară pentru a stoca o variabilă de structură este sumarea mărimii memoriei tuturor membrilor. Memoria necesară pentru a stoca o variabilă union este memoria necesară pentru cel mai mare element al uniunii.
 cuvinte cheie
Cuvântul cheie folosit pentru a defini o structură este "struct". Cuvântul folosit pentru definirea unei uniuni este "uniunea".

rezumat - Structura vs Uniune în C

Se utilizează o matrice pentru stocarea elementelor de date de același tip. Uneori este necesar să stocați elemente de date de diferite tipuri în aceeași locație de memorie. C limbajul de programare oferă structură și uniune pentru a îndeplini această sarcină. Ambele sunt tipuri de date definite de utilizator. Memoria necesară pentru a stoca o variabilă de structură este sumarea mărimii memoriei tuturor membrilor. Memoria necesară pentru a stoca o variabilă union este memoria necesară pentru cel mai mare element al uniunii. Aceasta este diferența dintre structură și uniune în C.

Referinţă:

1. Puncte, Tutoriale. "Structuri în C.", Tutoriale punct, 15 august 2017. Disponibil aici 
2.Point, Tutoriale. "Sindicatele din C." , Tutoriale punct, 15 august 2017. Disponibil aici