Struktura (programowanie)
Z Wikipedii
Struktura - typ danych w języku programowania.
Struktura jest typem zawierającym w sobie zmienne dowolnego typu (tzw. pola). Struktura umożliwia zapakowanie powiązanych ze sobą logicznie danych w jednym obszarze pamięci, który może być przesyłany jako jeden argument.
Spis treści |
[edytuj] Struktura w języku C
/* deklaracja */ struct miasto { long ludnosc; char* rzeka; };
/* definicja */ struct miasto Poznan; Poznan.ludnosc = 600000; Poznan.rzeka = (char*)malloc(sizeof(char)*6); strncpy(Poznan.rzeka, "Warta\0", 6);
Struktury w C mogą zawierać także pola zajmujące mniej niż 1 bajt. Aby zadeklarować takie pole, należy podać po dwukropku liczbę bitów.
struct liczba { unsigned int mlodszy_bajt :8; unsigned int starszy_bajt :7; unsigned int znak :1; };
Pola bitowe mogą mieć typ int lub unsigned int. W tym pierwszym wypadku najstarszy bit będzie przeznaczony na znak danego pola.
Zobacz też: unia
[edytuj] Struktura w języku C++
Struktury w C++ są deklarowane tak jak w C, jednak oprócz pól mogą zawierać także funkcje (tzw. metody) i mogą dziedziczyć z innych klas i struktur.
Struktura różni się w C++ od klasy wyłącznie domniemanym zakresem widoczności jej pól i metod - dla klasy jest to private a dla struktur public. Używanie struktur zamiast klas nie jest jednak dobrą praktyką programowania, gdyż zaciemnia budowę programu.
/* deklaracja */ struct miasto { long ludnosc; char* rzeka; miasto(long ludnosc,char *rzeka): ludnosc(ludnosc), rzeka(strdup(rzeka)) {}; /*konstruktor*/ inline char* wez_rzeke() {return rzeka}; ~miasto() {free( (void*)rzeka );} /*destruktor*/ };
[edytuj] Struktura w Matlabie
% definicja Poznan.ludnosc = 600000 Poznan.rzeka = 'Warta'
[edytuj] Struktura w języku Fortran 90/95
! deklaracja TYPE::miasto INTEGER(KIND=4)::ludnosc CHARACTER(20)::rzeka END TYPE miasto ! definicja TYPE(miasto)::Poznan Poznan%ludnosc = 6000000 Poznan%rzeka = 'Warta' ! albo Poznan = miasto(6000000,'Warta')
[edytuj] Struktura w Pascalu
{deklaracja} TYPE miasto = RECORD ludnosc : longint; rzeka : array[1..20] of char; END; {definicja} VAR Poznan: miasto; Poznan.ludnosc := 600000; Poznan.rzeka := 'Warta';
[edytuj] Struktura w PL/1
W języku PL/1 deklaracja struktury zawiera wprost podany przez programistę poziom zagłębienia w hierarchii struktury w postaci liczby całkowitej umieszczonej przed nazwą pola. Struktury na poziomie 1 to niezleżne od siebie obiekty programowe, natomiast każdy kolejny poziom deklaruje pola lub kolejne podstruktury zawarte w strukturze nadrzędnej. Zdefiniowana hierarchia struktury może być użyta w innej deklaracji dzięki użyciu frazy LIKE, kopjującej zdefioniowaną strukturę.
dcl 1 miasto, 2 ludnosc fixed dec(7,0), 2 rzeka char(20); ... miasto.ludnosc=6000; miasto.rzeka='Warta';