Kurs programowania w C cz. 128

Nasza ocena:

5
Pobrań: 7
Wyświetleń: 497
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Kurs programowania w C cz. 128 - strona 1

Fragment notatki:

STUDIUM PRZYPADKU — IMPLEMENTACJA LISTY WSKAŹNIKOWEJ 145 Zobacz też •  Powszechne praktyki  — konstruktory i destruktory Pola bitowe Struktury mają pewne dodatkowe możliwości w stosunku do zmiennych. Mowa tutaj o rozmiarze elementu struktury. W przeciwieństwie do zmiennej może on mieć nawet 1 bit!. Aby móc zdefiniować taką zmienną musimy użyć tzw.  pola bitowego . Wygląda ono tak: struct moja { unsigned int a1:4, /* 4 bity */ a2:8, /* 8 bitów (często 1 bajt) */ a3:1, /* 1 bit */ a4:3; /* 3 bity */ }; Wszystkie pola tej struktury mają w sumie rozmiar 16 bitów, jednak możemy odwoływać się do nich w taki sam sposób, jak do innych elementów struktury. W ten sposób efektywniej wykorzystujemy pamięć, jednak istnieją pewne zjawiska, których musimy być świadomi przy stosowaniu pól bitowych. Więcej na ten temat w rozdziale  przenośność programów. Pola bitowe znalazły zastosowanie głównie w implementacjach protokołów sieciowych. Studium przypadku â€” implementacja listy wskaźni- kowej Zobacz w Wikipedii:  Lista Rozważmy teraz coś, co każdy z nas może spotkać w codziennym Å¼yciu. Każdy z nas widział kiedyś jakiś przykład listy (czy to zakupów, czy też listę wierzycieli). Język C też oferuje listy, jednak w programowaniu listy będą służyły do czegoś innego. Wyobraźmy so- bie sytuację, w której jesteśmy autorami genialnego programu, który znajduje kolejne liczby pierwsze. Oczywiście każdą kolejną liczbę pierwszą może wyświetlać na ekran, jednak z ma- tematyki wiemy, Å¼e dana liczba jest liczbą pierwszą, jeśli nie dzieli się przez Å¼adną liczbę pierwszą ją poprzedzającą, mniejszą od pierwiastka z badanej liczby. Uff, mniej więcej cho- dzi o to, Å¼e moglibyśmy wykorzystać znalezione wcześniej liczby do przyspieszenia działania naszego programu. Jednak nasze liczby trzeba jakoś mądrze przechować w pamięci. Tablice mają ograniczenie â€” musimy z góry znać ich rozmiar. Jeśli zapełnilibyśmy tablicę, to przy znalezieniu każdej kolejnej liczby musielibyśmy: 1. przydzielać nowy obszar pamięci o rozmiarze poprzedniego rozmiaru + rozmiar zmien- nej, przechowującej nowo znalezioną liczbę 2. kopiować zawartość starego obszaru do nowego 3. zwalniać stary, nieużywany obszar pamięci 4. w ostatnim elemencie nowej tablicy zapisać znalezioną liczbę. Cóż, trochę tutaj roboty jest, a kopiowanie całej zawartości jednego obszaru w drugi jest ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz