39021

39021



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 poprawny kod C i należy o tym pamiętać szczególnie jeżeli uczysz się języka C korzystając z kompilatora C+-f.

Należy również pamiętać, że po klamrze zamykającej definicje musi następować średnik. Brak tego średnika jest częstym błędem powodującym czasami niezrozumiałe komunikaty błędów. Jedynym wyjątkiem jest natychmiastowa (kdinicja zmiennych danego typu. na przykład:

struct Struktura { int pole;

>    sl, s2, s3;

Definicja typów wyliczeniowych, unii i struktur jest lokalna do bloku. To znaczy, możemy zdefiniować strukturę wewnątrz jednej z funkcji (czy wręcz wewnątrz jakiegoś bloku funkcji) i tylko tam będzie można używać tego typu.

Częstym idiomem w C jest użycie typedef od razu z definicją typu, by uniknąć pisania onum. union czy struct przy deklaracji zmiennych danego typu.

typedef struct struktura { int pole;

>    Struktura;

Struktura sl; struct struktura s2;

W tym przypmlku zmienne sl i s2 są tego samego typu. Możemy też zrezygnować z nazywania samej struktury:

typedef struct { int pole;

} Struktura;

Struktura sl;

Wskaźnik na unię i strukturę

Podobnie, jak na każdą inną zmienna, wskaźnik może wskazywać także na unię lub strukturę. Oto przykład:

typedef struct { int pl, p2;

} Struktura;

int main O

{

Struktura s = { 0, 0 >;

Struktura *wsk - &s; wsk->pl ■ 2; vsk->p2 - 3; return 0;

>

Zapis vsk->pl jest (z definicji) równoważny (•wsk).pl. ale bardziej przejrzysty i powszechnie stosowany. Wyrażenie usk.pl Spowoduje błąd kompilacji (strukturą jest »usk a nie usk).



Wyszukiwarka

Podobne podstrony:
116 ROZDZIAŁ 19. TYPY ZŁOŻONEImplementacja listy W języku C aby stworzyć listę musimy użyć struktur.
118 ItOZDZIAL 19. TYPY ZŁOŻONE i żadna z nich nie będzie dzieliła liczby i, możemy liczbę i dodać do
ALG1 2.B. Typy programów rekurencyjnych 41 if (x==0) return 1; else return x*silnial !x-l); t Nie j
się zacząc od wstępu i poprzez kolejne rozdziały dojsc do zakończenia i wniosków . Nie jest to jedna
skanuj0016 (176) swój sposób. Nie jest to jednak wyobrażeń* powszechnie aprobowane. W wieku XX poj^f
skanuj0110 (21) 228 a mianowicie Romów. Nie jest to jednak współczesna opowieść lecz epicki, history
168 Traktat drugi § 8. Tak więc w stanie natury jeden człowiek utyskuje władcę nad drugim. Nie jest
socjo3 118 Mikrosocjologia jako dyscyplina społeczna 1950, s. 90, 93). Nie jest to jednakże jedyna

więcej podobnych podstron