Pole je dátová štruktúra podporovaná jazykom C. Pole možno použiť na ukladanie dátových prvkov rovnakého typu. Ak existuje vyhlásenie ako ochranné známky [10]; potom značky sú pole, do ktorého je možné uložiť desať značiek, a všetky sú celé čísla. Niekedy je potrebné ukladať dátové prvky rôznych typov na rovnaké miesto v pamäti. Napríklad zamestnanec môže mať ID zamestnanca, meno, oddelenie, vek atď. Sú to rôzne typy údajov. Preto je potrebné mať spôsob ukladania rôznych dátových prvkov ako jednej jednotky. Štruktúry a únie v C sa používajú na ukladanie dátových prvkov rôznych typov na rovnakom mieste v pamäti. Štruktúra a spojenie sú podobné, ale líšia sa hlavne kvôli alokácii pamäte. Pamäť požadovaná na uloženie premennej štruktúry je súčtom veľkosti pamäte všetkých členov. Pamäť potrebná na uloženie premennej únie je pamäť vyžadovaná pre najväčší prvok v jednotke. To je kľúčový rozdiel medzi štruktúrou a zjednotením v C. Tento článok sa zaoberá rozdielom medzi štruktúrou a zjednotením v C.
1. Prehľad a kľúčový rozdiel
2. Čo je štruktúra v C
3. Čo je Únia v C
4. Podobnosti medzi štruktúrou a úniou v C
5. Porovnanie vedľa seba - Štruktúra verzus Únia v C v tabuľkovej forme
6. Zhrnutie
Štruktúra je užívateľom definovaný typ údajov v C. Pomáha kombinovať údajové položky rôznych typov. Štruktúra môže predstavovať záznamy. Študent môže mať student_id, student_name atď. Namiesto ukladania každej premennej samostatne môžu byť všetky tieto rôzne dátové položky kompaktné do jednej jednotky pomocou štruktúry. Definuje sa pomocou kľúčového slova „struct“. V štruktúre môžu byť kedykoľvek prístupné všetky jej členovia. Nasledujúci text vytvára odvodený dátový typ struct Student.
struct Student
intstudent_id;
char student_name [20];
;
Pre vyššie uvedenú štruktúru možno premenné deklarovať nasledovne.
struct Študent1, študent2, študent3;
Existujú dve metódy na prístup k členom štruktúry. To je pomocou člena operátor (.) A operátor ukazovateľa štruktúry (->). K členom sa dá získať prístup pomocou structure_variable_name. meno člena. Ak chce programátor získať prístup k názvu študenta 2, potom môže napísať vyhlásenie ako printf (student2.student_namename);
Štruktúru si pozrite nižšie uvedený program.
Obrázok 01: Program C so štruktúrami
Podľa vyššie uvedeného programu je študentom štruktúra. Obsahuje student_id a student_name. V hlavnom programe sú deklarované dve premenné typu štruktúry. Nazývajú sa študent1 a študent2. Id student1 je priradené hodnote 1 pomocou člena operátor ako student1.student_id = 1. Názov „Ann“ je reťazec. Preto sa skopíruje do člena student_name pomocou funkcie strcpy copy copy. ID a meno sú priradené študentovi2 podobným spôsobom. Nakoniec sa tieto hodnoty tlačia pomocou operátora člena.
Množstvo pamäte potrebné na uloženie premennej štruktúry je súčet veľkosti pamäte všetkých členov. Názov_ študenta obsahuje 4 bajty a názov študenta obsahuje 20 bajtov (každý jeden bajt pre znak). Celkom 24 bajtov je súčet veľkosti pamäte vyžadovanej štruktúrou.
Únia je používateľom definovaný typ údajov v C. Pomáha ukladať rôzne typy údajov na rovnakom mieste v pamäti. Kniha môže mať vlastnosti, ako je book_name, cena atď. Namiesto vytvárania premenných pre každú z nich sa môže pomocou spojenia spojiť všetky rôzne typy údajov do jednej jednotky. Definuje sa pomocou kľúčového slova „únie“. Nasledujúci text vytvára odvodenú knihu zväzkov údajov.
unionBook
znak char [20];
dvojitá cena;
;
Pre vyššie uvedené spojenie možno premenné deklarovať nasledovne.
zväzková kniha1, kniha2;
Existujú dva spôsoby prístupu k členom únie. To je pomocou člena operátor (.) A operátor ukazovateľa štruktúry (->). Prístup k členom je pomocou Union_variable_name. meno člena. Ak chce programátor získať prístup k názvu knihy1, môže napísať príkaz ako printf (book1.name);
Odošlite program uvedený nižšie s odborom.
Obrázok 02: Program C pomocou spojenia
Podľa vyššie uvedeného programu je Kniha zväzkom. Kniha1 je premenná typu únie. Názov a cena sú priradené hodnoty. V únii je prístupný naraz iba pre jedného z jeho členov a všetci ostatní členovia budú mať hodnoty odpadu. Hodnota id sa netlačí správne, ale cena sa vytlačí správne.
Obrázok 03: Upravený program C so spojením
Podľa vyššie uvedeného programu je Kniha zväzkom. Book1 a book2 sú premenné typu únie. Najskôr sa priradí hodnota pre názov book1 a vytlačí sa. Potom sa priradí hodnota názvu knihy2 a vytlačí sa. Všetci členovia sa tlačia správne, pretože jeden člen sa používa súčasne. Pamäť potrebná na uloženie spojenia je pamäť vyžadovaná pre najväčší prvok spojenia. Vo vyššie uvedenom programe je premenná názvu 20 bajtov. Je vyššia ako cena. Rozdelenie pamäte pre spojenie je teda 20 bajtov.
Štruktúra verzus Únia v C | |
Štruktúra je užívateľom definovaný dátový typ v jazyku C, ktorý umožňuje kombinovať údaje rôznych typov dohromady. | Únia je užívateľom definovaný typ údajov v jazyku C, ktorý umožňuje kombinovať údaje rôznych typov dohromady. |
prístupnosť | |
V štruktúre sú všetci členovia prístupní kedykoľvek. | V odboroch je naraz prístupný iba pre jedného z jeho členov a všetci ostatní členovia budú obsahovať hodnoty odpadu. |
Pridelenie pamäte | |
Pamäť požadovaná na uloženie premennej štruktúry je súčtom veľkosti pamäte všetkých členov. | Pamäť potrebná na uloženie premennej únie je pamäť vyžadovaná pre najväčší prvok v jednotke. |
kľúčové | |
Kľúčové slovo použité na definovanie štruktúry je 'struct'. | Kľúčové slovo použité na definovanie únie je „union“. |
Pole sa používa na ukladanie dátových prvkov rovnakého typu. Niekedy je potrebné uložiť dátové prvky rôznych typov na rovnakom mieste v pamäti. Programovací jazyk C poskytuje štruktúru a spojenie na splnenie tejto úlohy. Oba typy sú používateľom definované typy údajov. Pamäť požadovaná na uloženie premennej štruktúry je súčtom veľkosti pamäte všetkých členov. Pamäť potrebná na uloženie premennej únie je pamäť vyžadovaná pre najväčší prvok v jednotke. Toto je rozdiel medzi štruktúrou a jednotou v C.
1.Point, Návody. “Structures in C.”, tutoriály, 15. augusta 2017. K dispozícii tu
2.Point, Návody. „Odbory v C.“ , Výukové programy Point, 15. augusta 2017. K dispozícii tu