Różnica między strukturą a złączem w C

Kluczowa różnica - struktura vs. Unia w C.
 

Tablica to struktura danych obsługiwana przez język C. Tablica może służyć do przechowywania elementów danych tego samego typu. Jeśli istnieje wyrażenie jako znaki int [10]; następnie znaki są tablicą, która może przechowywać dziesięć znaków, a wszystkie z nich są liczbami całkowitymi. Czasami wymagane jest przechowywanie elementów danych różnych typów w tej samej lokalizacji pamięci. Na przykład pracownik może mieć identyfikator pracownika, nazwisko, dział, wiek itp. Są to dane różnych typów. Dlatego konieczne jest posiadanie metody przechowywania różnych elementów danych jako pojedynczej jednostki. Struktury i związki w C służą do przechowywania elementów danych różnych typów w tej samej lokalizacji pamięci. Struktura i połączenie są podobne, ale różnią się głównie ze względu na przydział pamięci. Pamięć wymagana do przechowywania zmiennej struktury jest sumą wielkości pamięci wszystkich elementów. Pamięć wymagana do przechowywania zmiennej unii jest pamięcią wymaganą dla największego elementu w unii. To jest kluczowa różnica między strukturą a zjednoczeniem w C. W tym artykule omówiono różnicę między strukturą a zjednoczeniem w C..

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest struktura w C.
3. Czym jest Unia w C
4. Podobieństwa między strukturą a złączem w C
5. Porównanie obok siebie - Struktura vs Zjednoczenie w C w formie tabelarycznej
6. Podsumowanie

Co to jest struktura w C.?

Struktura to zdefiniowany przez użytkownika typ danych w C. Pomaga łączyć elementy danych różnych typów. Struktura może reprezentować rekordy. Uczeń może mieć identyfikator studentów, nazwę studentów itp. Zamiast przechowywać każdą zmienną osobno, wszystkie te różne elementy danych można spakować w jedną jednostkę za pomocą struktury. Jest definiowany za pomocą słowa kluczowego „struct”. W strukturze można uzyskać dostęp do wszystkich jej członków w dowolnym momencie. Poniższe informacje tworzą typ danych pochodnych struct Student.

struct Student

intstudent_id;

char nazwa_ studenta [20];

;

Dla powyższej struktury zmienne można zadeklarować w następujący sposób.

struct Student student1, student2, student3;

Istnieją dwie metody dostępu do członków struktury. To jest za pomocą operatora członka (.) I operatora wskaźnika struktury (->). Dostęp do członków można uzyskać za pomocą nazwy zmiennej_strukturalnej. Nazwa członka. Jeśli programista chce uzyskać dostęp do nazwiska ucznia 2, może napisać oświadczenie jako printf (nazwa_nazwa_nazwa_ studenta);

Zapoznaj się z poniższym programem ze strukturą.

Rysunek 01: Program C ze strukturami

Zgodnie z powyższym programem Student jest strukturą. Zawiera student_id i student_name. Dwie zmienne typu konstrukcji są zadeklarowane w programie głównym. Nazywają się one student1 i student2. Identyfikator ucznia 1 ma przypisaną wartość 1 przy użyciu operatora członka jako student1.student_id = 1. Nazwa „Ann” jest ciągiem. Dlatego jest on kopiowany do członka nazwa_użytkownika przy użyciu funkcji kopiowania łańcucha strcpy. Identyfikator i nazwa są przypisywane do student2 w podobny sposób. Na koniec wartości te są drukowane przy użyciu operatora członka.

Ilość pamięci wymagana do przechowywania zmiennej struktury jest sumą wielkości pamięci wszystkich elementów. Student_id zawiera 4 bajty, a student_name zawiera 20 bajtów (po jednym bajcie na znak). Łącznie 24 bajty to suma wielkości pamięci wymaganej przez strukturę.

Co to jest Unia w C?

Unia jest zdefiniowanym przez użytkownika typem danych w C. Pomaga przechowywać różne typy danych w tej samej lokalizacji pamięci. Książka może mieć właściwości takie jak nazwa_księgi, cena itp. Zamiast tworzyć zmienne dla każdego z nich, można użyć unii do kompaktowania wszystkich różnych typów danych w jedną jednostkę za pomocą unii. Jest on definiowany za pomocą słowa kluczowego „unia”. Poniżej utworzono pochodną książkę danych unii.

unionBook

nazwa char [20];

podwójna cena;

;

Dla powyższego związku zmienne można zadeklarować w następujący sposób.

książka zjednoczeniowa book1, book2;

Istnieją dwie metody dostępu do członków związku. To jest za pomocą operatora członka (.) I operatora wskaźnika struktury (->). Dostęp do członków można uzyskać za pomocą zmiennej nazwa_związku. Nazwa członka. Jeśli programista chce uzyskać dostęp do nazwy book1, może napisać instrukcję jako printf (book1.name);

Zapoznaj się z poniższym programem ze związkiem.

Rysunek 02: Program C przy użyciu unii

Zgodnie z powyższym programem Księga jest związkiem. Book1 jest zmienną typu union. Nazwa i cena mają przypisane wartości. W związku, tylko jeden z jego członków może być dostępny jednocześnie, a wszyscy inni członkowie będą mieli wartości śmieci. Wartość id nie jest drukowana poprawnie, ale wartość ceny drukuje się poprawnie.

Rysunek 03: Zmodyfikowany program C ze złączem

Zgodnie z powyższym programem Book jest związkiem. Book1 i book2 są zmiennymi typu unii. Najpierw przypisywana jest wartość nazwy book1 i jest ona drukowana. Następnie przypisywana jest wartość nazwy book2 i jest ona drukowana. Wszyscy członkowie drukują poprawnie, ponieważ jeden członek jest używany jednocześnie. Pamięć wymagana do przechowywania związku jest pamięcią wymaganą dla największego elementu związku. W powyższym programie zmienna nazwy ma 20 bajtów. Jest większy niż cena. Przydział pamięci dla związku wynosi 20 bajtów.

Jakie są podobieństwa między strukturą a złączem w C?

  • Zarówno Struktura, jak i Unia w C są typami danych zdefiniowanymi przez użytkownika.
  • Zarówno Structure, jak i Union in C mogą być używane do przechowywania różnych typów danych w tej samej lokalizacji pamięci.

Jaka jest różnica między strukturą a złączem w C?

Struktura vs Unia w C.

Struktura to zdefiniowany przez użytkownika typ danych w języku C, który umożliwia łączenie danych różnych typów razem. Union to zdefiniowany przez użytkownika typ danych w języku C, który umożliwia łączenie danych różnych typów razem.
 Dostępność
W strukturze wszyscy członkowie mogą być dostępni w dowolnym momencie. W związku można uzyskać dostęp tylko do jednego jego członka naraz, a wszyscy inni członkowie będą zawierać wartości śmieci.
Przydział pamięci
Pamięć wymagana do przechowywania zmiennej struktury jest sumą wielkości pamięci wszystkich elementów. Pamięć wymagana do przechowywania zmiennej unii jest pamięcią wymaganą dla największego elementu w unii.
 Słowo kluczowe
Słowo kluczowe użyte do zdefiniowania struktury to „struct”. Słowo kluczowe użyte do zdefiniowania związku to „związek”.

streszczenie - Struktura vs Unia w C.

Tablica służy do przechowywania elementów danych tego samego typu. Czasami konieczne jest przechowywanie elementów danych różnych typów w tej samej lokalizacji pamięci. Język programowania C zapewnia strukturę i jedność do wykonania tego zadania. Oba są typami danych zdefiniowanymi przez użytkownika. Pamięć wymagana do przechowywania zmiennej struktury jest sumą wielkości pamięci wszystkich elementów. Pamięć wymagana do przechowywania zmiennej unii jest pamięcią wymaganą dla największego elementu w unii. To jest różnica między strukturą a zjednoczeniem w C.

Odniesienie:

1.Punkt, samouczki. „Structures in C.”, Tutorials Point, 15 sierpnia 2017. Dostępne tutaj 
2.Punkt, samouczki. „Związki w C.” , Tutorials Point, 15 sierpnia 2017. Dostępne tutaj