I TABLICE
} else if (type == NAME) {
sprintf(temp, ”%s %s”t token, out); strcpy(out, temp);
} else
printf(”niepoprawne dane wejściowe: %s\n”, token); printf(”%s\n”a out);
return 0;
Ćwiczenie 5.18. Uodpornij program dcl na błędy w danych wejściowych.
Ćwiczenie 5.19. Zmień program undcl tak, aby w deklaracjach nie dodawał zbędnych nawiasów.
*
Ćwiczenie 5.20. Rozszerz możliwości programu dcl o obsługę typów argumentów funkcji, o rozpoznawanie kwalifikatorów takich jak const itp.
powered by
Struktura jest obiektem złożonym z jednej lub kilku zmiennych, być może różnych typów, dla wygody zgrupowanych pod jedną nazwą. (W niektórych językach, takich jak Pascal, struktury są nazywane „rekordami”.) Struktury ułatwiają zorganizowanie skomplikowanych danych, szczególnie w dużych programach, ponieważ grupę związanych ze sobą zmiennych pozwalają traktować jak jeden obiekt, a nie jak zestaw oddzielnych obiektów.
Jednym z tradycyjnych przykładów struktury jest pozycja listy płac: pracownik jest opisany przez zbiór takich atrybutów, jak nazwisko, adres, numer polisy ubezpieczeniowej, wynagrodzenie itp. Z kolei niektóre z tych atrybutów również mogą być strukturami: nazwisko ma kilka składowych, podobnie adres, a nawet wynagrodzenie. Inny przykład, bardziej typowy dla języka C, pochodzi z grafiki: punkt jest opisany przez parę współrzędnych, prostokąt jest opisany przez parę punktów itd.
Istotną zmianą w standardzie ANSI C jest zdefiniowanie operacji przypisania dla struktur: struktury można przypisywać jedna drugiej, kopiować jedną na drugą, przekazywać do funkcji i zwracać jako wartość funkcyjną. Na to wszystko większość kompilatorów pozwala już od wielu lat, ale teraz właściwości struktur zostały precyzyjnie sformułowane. Strukturom i tablicom automatycznym można również nadawać wartości początkowe.
Zbudujemy teraz kilka struktur odpowiednich dla grafiki. Podstawowym obiektem jest punkt, który z założenia opisują dwie współrzędne całkowite: x i y.
173