STRUKTURY 143 char t; union ZamianaKolejnosci { unsigned short p1; unsigned char p2[2]; }; union ZamianaKolejnosci p; p.p1=GetPortNr(); /* w wyniku czego z np. klawiatury w p.p1 bedzie 0x3412 */ /* Teraz zamienmy kolejnosc bajtow */ t=p.p2[1]; p.p2[1]=p.p2[0]; p.p2[0]=t; /*a teraz mozemy wyslac pakiet UDP np. w systemie Ethernut (port RTOS dla urzadzen wbudowanych) */ r=NutUdpSendTo(sock, ip, p.p1, "ALA MA KOTA", strlen("ALA MA KOTA")); Na koniec w zmiennej p.p1 mamy 0x1234. Struktury Struktury to specjalny typ danych mogący przechowywać wiele wartości w jednej zmien- nej. Od tablic jednakże różni się tym, iż te wartości mogą być różnych typów. Struktury definiuje się podobnie jak unie, ale zamiast słowa kluczowego union używa się struct , np.: struct Struktura { int pole1; int pole2; char pole3; }; Zmienną posiadającą strukturę tworzy się podając jako jej typ nazwę struktury. struct Struktura zmiennaS; Dostęp do poszczególnych pól, tak samo jak w przypadku unii, uzyskuje się przy pomocy operatora kropki: zmiennaS.pole1 = 60; /* przypisanie liczb do pól */ zmiennaS.pole2 = 2; zmiennaS.pole3 = ’a’; /* a teraz znaku */ Wspólne własności typów wyliczeniowych, unii i struk- tur Warto w zwrócić uwagę, że język C++ przy deklaracji zmiennych typów wyliczeniowych, unii lub struktur nie wymaga przed nazwą typu odpowiedniego słowa kluczowego. Na przykład poniższy kod jest poprawnym programem C++: enum Enum { A, B, C }; union Union { int a; float b; }; struct Struct { int a; float b; }; int main() { Enum e; Union u; Struct s;
... zobacz całą notatkę
Komentarze użytkowników (0)