Razlika između strukture i unije

Sadržaj:

Anonim

Što je struktura?

Struktura je korisnički definirani tip podataka u programskom jeziku C koji kombinira logički povezane stavke podataka različitih tipova podataka zajedno.

Svi elementi strukture pohranjeni su na susjednim memorijskim mjestima. Varijabla tipa strukture može pod jednim imenom pohraniti više podataka iz različitih tipova podataka.

U ovom vodiču naučit ćete:

  • Što je struktura?
  • Što je Union
  • Sintaksa deklariranja strukture
  • Primjer strukture u C programiranju
  • Sintaksa proglašenja unije
  • Primjer programiranja Unije u C
  • Struktura vs. Unija
  • Prednosti strukture
  • Prednosti sindikata
  • Mane strukture
  • Mane sindikata

Što je Union

Union je korisnički definirani tip podataka, baš kao i struktura. Union kombinira predmete različitih vrsta i veličina zajedno. Varijabla unija dodjeljuje memorijski prostor jednak prostoru za čuvanje najveće varijable unije. Omogućuje različitim vrstama objekata da dijele isto mjesto.

Sintaksa deklariranja strukture

struct [name of the structure]{type member1;type member2;type member3;};

Struktura se deklarira pomoću ključne riječi "struct" i naziva strukture. Broj 1, broj 2, broj 3 pojedinačni su članovi strukture. Dio tijela završava se zarezom (;).

Primjer strukture u C programiranju

#include struct student {char name[60];int roll_no;float marks;} sdt;int main() {printf("Enter the following information:\n");printf("Enter student name: ");fgets(sdt.name, sizeof(sdt.name), stdin);printf("Enter student roll number: ");scanf("%d", & sdt. roll_no);printf("Enter students marks: ");scanf("%f", & sdt.marks);printf("The information you have entered is: \n");printf("Student name: ");printf("%s", sdt.name);printf("Student roll number: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}

U gornjem programu stvorena je struktura koja se naziva student. Ova struktura ima tri člana podataka: 1) ime (niz), 2) roll_no (cijeli broj) i 3) oznake (plutajuće).

Nakon toga kreira se strukturna varijabla sdt za pohranu podataka o studentu i prikaz na zaslonu računala.

Izlaz:

Unesite sljedeće podatke:

Unesite ime učenika: James

Unesite broj studentske liste: 21

Unesite ocjene učenika: 67

Podaci koje ste unijeli su:

Ime studenta: John

Broj studentske role: 21

Ocjene učenika: 67,0

Sintaksa proglašenja unije

union [name of union]{type member1;type member2;type member3;};

Unija se deklarira pomoću ključne riječi "union" i naziva unije. Broj 1, broj 2, broj 3 pojedinačni su članovi sindikata. Dio tijela završava se zarezom (;).

Primjer programiranja Unije u C

#include union item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}

Izlaz:

1101109601

20.199892

a

U gornjem programu možete vidjeti da su vrijednosti x i y oštećene. Samo varijabla ch ispisuje očekivani rezultat. To je zato što se, zajedno, memorijsko mjesto dijeli između svih tipova podataka članova.

Stoga će jedini podatkovni član čija je vrijednost trenutno pohranjena zauzeti memorijski prostor. Vrijednost varijable ch napokon je pohranjena, tako da se vrijednost ostalih varijabli gubi.

Struktura vs. Unija

Evo važne razlike između strukture i unije:

Struktura Unija
Ključnu riječ struct možete koristiti za definiranje strukture. Ključnu riječ union možete koristiti za definiranje unije.
Svakom članu unutar strukture dodijeljeno je jedinstveno memorijsko mjesto. Zajedno, memorijsko mjesto dijele svi članovi podataka.
Promjena vrijednosti jednog člana podataka neće utjecati na ostale članove podataka u strukturi. Promjena vrijednosti jednog člana podataka promijenit će vrijednost ostalih članova podataka u uniji.
Omogućuje vam inicijalizaciju nekoliko članova odjednom. Omogućuje vam inicijalizaciju samo prvog člana unije.
Ukupna veličina strukture zbroj je veličine svakog člana podataka. Ukupna veličina saveza je veličina najvećeg člana podataka.
Uglavnom se koristi za pohranu različitih vrsta podataka. Uglavnom se koristi za pohranu jedne od mnogih dostupnih vrsta podataka.
Zauzima prostor za svakog člana zapisanog unutarnjim parametrima. Zauzima prostor za člana koji ima najveću veličinu zapisanu u unutarnjim parametrima.
Možete istovremeno dohvatiti bilo kojeg člana. Možete pristupiti jednom članu sindikata.
Podržava fleksibilni niz. Ne podržava fleksibilni niz.

Prednosti strukture

Evo prednosti / prednosti korištenja strukture:

  • Strukture na istom mjestu prikupljaju više podataka o istoj temi.
  • Korisno je kada želite prikupiti podatke sličnih vrsta podataka i parametara kao što su ime, prezime itd.
  • Vrlo je jednostavno za održavanje jer cijeli zapis možemo predstaviti jednim imenom.
  • U strukturi možemo poslati kompletan set zapisa bilo kojoj funkciji pomoću jednog parametra.
  • Možete koristiti niz struktura za spremanje više zapisa sa sličnim vrstama.

Prednosti sindikata

Evo prednosti / prednosti za upotrebu sindikata:

  • Zauzima manje memorije u odnosu na strukturu.
  • Kada koristite union, izravno se može pristupiti samo posljednjoj varijabli.
  • Union se koristi kada morate koristiti isto mjesto memorije za dva ili više članova podataka.
  • Omogućuje vam držanje podataka samo jednog člana podataka.
  • Njegov dodijeljeni prostor jednak je maksimalnoj veličini člana podataka.

Mane strukture

Evo nedostataka / nedostataka korištenja strukture:

  • Ako složenost IT projekta prijeđe granicu, postaje teško za upravljanje.
  • Promjena jedne strukture podataka u kodu zahtijeva promjene na mnogim drugim mjestima. Stoga promjene postaje teško pratiti.
  • Struktura je sporija jer zahtijeva prostor za pohranu svih podataka.
  • U strukturi možete pristupiti bilo kojem članu istovremeno, dok u sindikatu možete pristupati po jednom članu.
  • Struktura zauzima prostor za svakog člana zapisanog u unutarnjim parametrima, dok unija zauzima prostor za člana koji ima najveću veličinu zapisan u unutarnjim parametrima.
  • Struktura podržava fleksibilni niz. Union ne podržava fleksibilni niz.

Mane sindikata

Evo slabosti / nedostataka za upotrebu sindikata:

  • Istodobno možete koristiti samo jednog člana sindikata.
  • Sve unija varijable ne mogu se istovremeno inicijalizirati ili koristiti s različitim vrijednostima.
  • Sindikat dodjeljuje jedan zajednički skladišni prostor za sve svoje članove.

KLJUČNE RAZLIKE:

  • Svakom članu unutar strukture dodijeljeno je jedinstveno memorijsko mjesto, dok u jedinici memorijsko mjesto dijele svi članovi podataka.
  • Promjena vrijednosti jednog člana podataka neće utjecati na ostale članove podataka u strukturi, dok će promjena vrijednosti jednog člana podataka promijeniti vrijednost ostalih članova podataka u uniji.
  • Struktura se uglavnom koristi za pohranu različitih vrsta podataka, dok se unija uglavnom koristi za spremanje jedne od mnogih vrsta podataka.
  • U strukturi možete istovremeno dohvatiti bilo kojeg člana, s druge strane u uniji, možete pristupiti po jednom članu.
  • Struktura podržava fleksibilni niz, dok unija ne podržava fleksibilni niz.