Różnica między strukturą a związkiem w C

Różnica między strukturą a związkiem w C
Język programowania C zapewnia programistom różne typy danych do przechowywania danych w pamięci do przetwarzania. Spośród tych typów danych struktury i związki to dwa powszechnie używane danych w programowaniu C do grupowania wielu zmiennych różnych typów danych na jedną jednostkę. Zarówno struktury, jak i związki są zdefiniowane przez programista i służą podobnym celom. Różnią się jednak kilkoma aspektami, w tym przechowywanie, alokacja pamięci i użycie.

Artykuł zawiera analizę porównawczą między strukturą a unii w języku programowania C.

Struktura w c

Struktura w C to danych zdefiniowany przez użytkownika, który umożliwia programistom grupowanie zmiennych różnych typów danych w jedną jednostkę. Struktura może zawierać elementy, które mogą być zmiennymi dowolnego typu danych, takich jak liczby całkowite, pływaki, tablice, a nawet inne struktury. Aby zadeklarować strukturę w C, musisz użyć słowa kluczowego „Struct” a następnie nazwa struktury i jej zmiennych elementów, jak pokazano w poniższym przykładzie:

Deklaracja struktury w C

Poniżej znajduje się deklaracja struktury w programowaniu C.

struct_keyword struct_name
data_type1 członek1;
data_type2 Member2;
;

Związek w c

Związek w C jest również zdefiniowanym przez użytkownika danych, który umożliwia programistę przechowywania różnych rodzajów danych w tej samej lokalizacji pamięci. W przeciwieństwie do struktur, związki mają tylko jedną lokalizację pamięci, która jest udostępniana przez wszystkich ich członków. Dlatego tylko jeden członek Unii może uzyskać do niego dostęp jednocześnie. Rozmiar związku mierzy się według wielkości jej największego członka.

Deklaracja związku w C

Oto przykład, jak ogłosić związek w C.

Union_keyword Union_name
data_type1 członek1;
data_type2 Member2;
;

Różnica między strukturą a związkiem w C

Poniższa tabela pokazuje różnicę między strukturą a unii w programowaniu C.

Funkcja Struktura Unia
Definicja Zbieranie powiązanych członków danych Ta sama lokalizacja pamięci jest udostępniana przez wszystkich członków
Alokacja pamięci Przydziela pamięć dla wszystkich członków Przydziela pamięć dla największego członka
Inicjowanie członków Można inicjować indywidualnie lub jako całość Może zainicjować tylko jednego członka na raz
Domyślna inicjalizacja Członkowie są inicjowane do wartości domyślnych Członkowie są domyślnie niezainicjowania
Obliczanie wielkości Suma rozmiarów wszystkich członków Rozmiar największego członka
Przypadków użycia Służy do przechowywania wielu rodzajów danych i dostępu do nich Służy do zapisywania pamięci, gdy wiele typów danych udostępnia tę samą lokalizację pamięci
Dostęp do członków Używając nazwy członka i kropki (.) Operator Używając nazwy członka i kropki (.) Operator

Poniżej znajduje się przykład kodowania, który ilustruje różnicę między strukturą a unii w programowaniu C.

#włączać
struct myStruct
int a;
char b;
;
Union Myunion
int x;
Char y;
;
int main ()
struktur Mystruct Mystruct;
MYSTRUCT.a = 10;
MYSTRUCT.B = „A”;
Union Myunion Myunion;
Myunion.x = 10;
Myunion.y = „a”;
printf („Wartości struktury: %d, %c \ n”, MyStruct.a, Mystruct.B);
printf („Wartości Unii: %d, %c \ n”, myunion.X, Myunion.y);
powrót 0;

W powyższym kodzie zdefiniowaliśmy strukturę nazwaną MYSTRUCT który zawiera liczbę całkowitą i postać, a także o nazwisku Myunion który zawiera również liczbę całkowitą i postać. Następnie tworzymy instancje obu MYSTRUCT I Myunion i ustaw ich wartości. Ustawiamy wartość liczb całkowitą zarówno na 10, jak i wartość znaku obu do 'A'.

Kiedy drukujemy wartości struktury i unii, widzimy, że struktura ma osobne zmienne dla całkowitej i charakteru, a każda zmienna zachowuje swoją wartość. Wyjście pokazano poniżej:

Wniosek

Struktura i związek to dwa różne danych, które mają podobną składnię w języku C. Są różne pod niektórymi aspektami, takimi jak przechowywanie, alokacja pamięci, użyteczność i inne funkcje. W tym artykule przedstawiono łatwy przewodnik do znalezienia szczegółowego porównania struktury i unii, a następnie przykłady kodowania, które wyraźnie różnicują oba programowanie C.