Kurs programowania w C cz. 127

Nasza ocena:

5
Wyświetleń: 490
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

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

Fragment notatki:

144 ROZDZIAŁ 19. TYPY ZŁOŻONE e = A; u.a = 0; s.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++. 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 definicja zmiennych danego typu, na przykład: struct Struktura { int pole; } s1, 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 enum, union czy struct przy deklaracji zmiennych danego typu. typedef struct struktura { int pole; } Struktura; Struktura s1; struct struktura s2; W tym przypadku zmienne s1 i s2 są tego samego typu. Możemy też zrezygnować z nazywania samej struktury: typedef struct { int pole; } Struktura; Struktura s1; Wskaźnik na unię i strukturę Podobnie, jak na każdą inną zmienna, wskaźnik może wskazywać także na unię lub struk- turę. Oto przykład: typedef struct { int p1, p2; } Struktura; int main () { Struktura s = { 0, 0 }; Struktura *wsk = &s; wsk-p1 = 2; wsk-p2 = 3; return 0; } Zapis wsk- p1 jest (z definicji) równoważny (*wsk).p1, ale bardziej przejrzysty i po- wszechnie stosowany. Wyrażenie wsk.p1 spowoduje błąd kompilacji (strukturą jest *wsk a nie wsk). ... zobacz całą notatkę



Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz