39019

39019



142


ItOZDZIAL 19. TYPY ZŁOŻONE

kierunek ■ W_DOL;

printf("Xi\n", kierunek); /* wypisze 1 •/

Kolejne wartości to |w> prostu liczby naturalne: domyślnie pierwsza to zero. druga jeden itp. Możemy przy deklarowaniu typu wyliczeniowego zmienić domyślne przypor/ądkowanie:

onura Kierunek { W.GORE, W_D0L ■ 8, W.LEWO. W.PRAWO }; printf("Xi Xi\n\ W.DOL, W.LEWO); /• wypisze 89*/

O) więcej liczby mogą się powtarzać i wcale nie muszą być ustawione w kolejności rosnącej:

enum Kierunek { W.GORE - 5, W.DOL - 5. W.LEWO - 2. W.PRAWO ■ 1 >; printf(MXi Xi\n", W.DOL, W.LEWO); /• wypisze 52*/

Traktowanie przez kompilator typu wyliczeniowego jako liczby pozwala na wydajną ich obsługę, ale stwarza niebezpieczeństwa można przypisywać pod typ wyliczeniowy liczby, nawet nie mające odpowiednika w wartościach, a kompilator może o tym nawet nie ostrzec:

kierunek = 40;

Unie

Są to twory deklarowane w następujący sposób:

union Nazwa { typl nazwał; typ2 nazwa2;

/* ... */

);

Na przykład:

union LiczbaLubZnak { int całkowita; char znak; double rzeczywista;

>;

Pola w unii nakładają się na siebie w ten sposób, że w danej chwili można w niej przechowywać wartość tylko jednego typu. Unia zajmuje w pamięci tyle miejsca, ile zajmuje największa z jej składowych. W powyższym przypadku unia będzie miała prawdopodobnie rozmiar typu double czyli często 64 bity, a całkowita i znak będą wskazywały od|x>wicdnio na pierwsze cztery bajty lul) na pierwszy bajt unii (choć nie musi tak być zawsze).

Do konkretnych wartości pól unii odwołujemy się przy pomocy operatorem wyboru składnika kropki:

union LiczbaLubZnak liczba;

liczba.całkowita - 10;

printf("Xd\n", liczba.całkowita);

Zazwyczaj użycie unii ma tui celu zmniejszenie zapotrzebowania na pamięć, gdy naraz będzie wykorzystywane tylko jedno pok* i jest często łączone- z użyciem struktur.

Życiowy przykład użycia — zamieniamy kolejność bajtów w p.pl — np. w kodzie oprogramowania sieciowego Big Endian -> Little Kndian, gdy potrzeba zmiany numeru portu podanego w “nie sieciowej” kolejności bajtów:



Wyszukiwarka

Podobne podstrony:
118 ItOZDZIAL 19. TYPY ZŁOŻONE i żadna z nich nie będzie dzieliła liczby i, możemy liczbę i dodać do
144 ROZDZIAŁ 19. TYPY ZŁOŻONE e ■ A; u.a • 0; 3.a • 0; return e ♦ u.a + s.a;} Nie jest to jednak
116 ROZDZIAŁ 19. TYPY ZŁOŻONEImplementacja listy W języku C aby stworzyć listę musimy użyć struktur.
IMG 19 zmodyfikowana trzy kierunki prac: •    wzbogacanie żywności w składniki
19    Typy
19. KUCHTA Wiesław : Kierunki modernizacji technicznej sprzętu inżynieryjnego używanego przez wojska
Slajd21 (19) Typy danych 1/3 Typ danych Zastosowanie Rozmiar Tekst Tekst lub kombinacja tekstu i
Mariologia - Boskie studia    jnudmEgą Ulub* to1 19 Wśród tegorocznych kierunków ten
DSC96 (19) Ciężki złożony niedobór odporności (SCID) jest wynikiem mutacji recesywnych związanych z
Wprowadzenie do MatLab (28) Typy złożono będą omówione w dalszej części pracy. Formowanie zmiennych
19.3. Typy pracy Pracę ludzką ogólnie można podzielić na cztery odrębne fundamentalnie typy. Te czte
HAPOL- EGZAMIN LDet lun tiry mu i rlekty/jm w odniesieniu do 19-w. Arch. Histcryzm, kierunek w archi
FizykaII05401 49 49 Fig. 19. z razu tak w kierunku rzędnych //, jako też i odciętych z do miejsca&n
ALG7 3.5. Przykład 4: Różne typy złożoności obliczeniowej 67 Koszt algorytmu oznaczmy klasycznie pr
Złożone typy danych Na podstawie http://pl.wikibooks.org/wiki/C/Typy_złożoneStruktury Struktury to

więcej podobnych podstron