Logo pl.removalsclassifieds.com

Różnica między strukturą a unią w C (z tabelą)

Spisu treści:

Anonim

W języku programowania C istnieją predefiniowane typy danych i typy danych zdefiniowane przez użytkownika. Przykładami typów danych zdefiniowanych przez użytkownika są struktury i unie w języku C.

W strukturach i Unii użytkownicy mogą definiować różne typy danych i funkcje członkowskie, aby uzyskać dostęp do wszystkich zmiennych. Chociaż oba mają tę samą składnię, istnieje między nimi ogromna różnica.

Struktura a Unia w C

W strukturze całkowity rozmiar pamięci jest równy sumie rozmiarów wszystkich typów danych w strukturze. Podczas gdy w Unii całkowity rozmiar pamięci jest równy rozmiarowi największego typu danych w Unii. Jest to jedna z najważniejszych różnic między strukturą a związkiem.

Na przykład

Praca strukturalna

{

pieniądze wewnętrzne;

Nazwa znaku;

}s1;

W tym przypadku rozmiar pamięci dla przydzielonej struktury wynosiłby 2+1 =3 bajty, ponieważ rozmiar liczby całkowitej to 1 bajt, a rozmiar znaku to 2 bajty. Stąd rozmiar będzie wynosił 3 bajty.

praca związkowa

{

pieniądze wewnętrzne;

Nazwa znaku;

}s1;

W unii rozmiar przydzielonej pamięci będzie wynosił 2 bajty, ponieważ maksymalny rozmiar typu danych w unii to 2 bajty, tj. typ danych znakowych.

Tabela porównawcza między strukturą a związkiem w C (w formie tabelarycznej)

Parametr do porównania Unia Struktura
Definicja słowa kluczowego Używa słowa kluczowego „unia” Używa słowa kluczowego „struct”
Rozmiar pamięci Rozmiar jest równy elementowi o największym rozmiarze. Rozmiar równy sumie wszystkich elementów w strukturze
Pamięć współdzielona Cała pamięć elementu jest współdzielona z różnymi elementami Elementy struktury nie mają pamięci współdzielonej.
Dostęp do elementów Tylko jeden element jest dostępny w tym samym czasie Dostęp do dowolnej liczby elementów można uzyskać w dowolnym momencie
Przykład Przykład związku{Typy danych i członkowie}obj; struct example{Typy danych i elementy członkowskie}obj;

Co to jest struktura w C?

Struktura jest grupą danych zdefiniowaną przez użytkownika i jest zbiorem różnych typów danych. Poniższy przykład będzie całkiem przydatny. Załóżmy, że programista musi przechowywać pewne dane, takie jak uczeń, imię i nazwisko, klasa, adres i wiele innych.

Cóż, istnieją dwa sposoby podejścia do tego problemu, jeden to stworzenie różnych typów danych, a drugi to stworzenie struktury.

Tutaj w tym przypadku struktura byłaby korzystna, ponieważ jeśli tworzysz zmienne osobno, musisz utworzyć wiele zmiennych dla każdego ucznia, a byłoby to naprawdę spustoszenie. Zamiast tego struktura może być używana wielokrotnie.

Strukturę można utworzyć za pomocą słowa kluczowego struct.

Na przykład

Struktura_nazwa_struktury{

Typ danych nazwa_typu_danych;

Typ danych nazwa_typu_danych;

Typ danych nazwa_typu_danych;

Typ danych nazwa_typu_danych;

};

Jeśli chcesz uzyskać dostęp do któregokolwiek z członków danych, musisz utworzyć obiekt, taki jak

nazwa_struktury struktury nazwa_obiektu;

Dzięki składni nazwa_obiektu.nazwa_typu danych będziesz mógł uzyskać dostęp do typu danych w strukturze.

Co to jest Unia w C?

Podobny do struktur union jest kolejnym zdefiniowanym przez użytkownika typem danych w języku programowania C. Za każdym razem, gdy programista definiuje unię, tworzony jest typ danych zdefiniowany przez użytkownika, ale nie ma miejsca w pamięci.

Cóż, jeśli chcesz alokować pamięć, to trzeba utworzyć zmienne w unii. Union ma właściwość, która nie pozwala programiście na dostęp do więcej niż jednego typu danych.

W związku z tym programista może uzyskać dostęp do jednego członka danych na raz. Weźmy mały przykład.

Unia nazwa_związku

{

Typ_danych Nazwa_typu_danych;

Typ_danych Nazwa_typu_danych;

Typ_danych Nazwa_typu_danych;

Typ_danych Nazwa_typu_danych;

};

W powyższym przykładzie wyświetlana jest podstawowa struktura unii. W ten sposób programista tworzy unię. Jeśli chcesz uzyskać dostęp do dowolnego typu danych w unii, musisz go użyć. operator podobny do struktury.

Unia nazwa_związku nazwa_obiektu; Za pomocą powyższego oświadczenia możesz utworzyć obiekt, który pomoże Ci uzyskać dostęp do dowolnego członka danych w unii za pomocą operatora kropki.

Główne różnice między strukturą a związkiem w C

  1. Struktura to zdefiniowany przez użytkownika typ danych, który przechowuje różne typy danych. Jest również używany do reprezentowania zbioru wartości typów danych. Jeśli programista musi zdefiniować unię, musi użyć słowa kluczowego struct. Podczas gdy związek potrzebuje, związkowego słowa kluczowego dla definicji.
  2. W strukturze wszystkie typy danych są przechowywane w innej lokalizacji i można uzyskać dostęp do wielu członków danych. Podczas gdy w unii wszyscy członkowie danych współdzielą tę samą lokalizację w pamięci i tylko jeden członek danych jest dostępny w tym samym czasie.
  3. W strukturze do inicjowania dowolnego elementu członkowskiego można zainicjować kilka elementów członkowskich jednocześnie, ale w przypadku unii można zainicjować tylko pierwszy element członkowski.
  4. Całkowity rozmiar struktury zależy od sumy rozmiaru wszystkich członków danych, podczas gdy w przypadku unii rozmiar jest równy elementowi danych, którego rozmiar jest największy ze wszystkich.
  5. W strukturze każdy typ danych ma inną alokację pamięci, podczas gdy w Unii jest jedna pamięć przydzielona dla elementu danych o największym rozmiarze.

Wniosek

Struktura i związki są typami danych zdefiniowanymi przez użytkownika, używanymi w programowaniu w języku c. Struktura i związki mają tę samą koncepcję przechowywania wielu typów danych. A wszystkie typy danych w strukturze i Unii są dostępne za pomocą operatora kropki.

Struktury i unie różnią się tylko rozmiarem i alokacją pamięci, ale ich przypadek użycia jest taki sam. Oba z nich zwiększają możliwość ponownego wykorzystania kodu i nie tylko. Jeśli chcesz przechowywać wiele wartości dla jednego typu danych, przydatna byłaby struktura i unia.

Podstawowym przypadkiem użycia struktury i związku jest sytuacja, w której musisz przechowywać dokumentację pracownika. Struktura lub unia będą przechowywać wszystkie dane w strukturze lub unii, a następnie możesz przechowywać dane lub uzyskiwać do nich dostęp. Główna różnica dotyczy alokacji pamięci i dostępu do typu danych.

Różnica między strukturą a unią w C (z tabelą)