W potrzasku języka C - Helion
Tytuł oryginału: C Traps and Pitfalls
Tłumaczenie: Przemysław Szeremiota
ISBN: 83-7361-727-2
stron: 152, Format: B5, okładka: miękka
Data wydania: 2004-12-20
Księgarnia: Helion
Cena książki: 29,90 zł
Każdy, nawet najbardziej doświadczony programista, popełnia błędy podczas pracy. Niektóre z nich wynikają z pośpiechu, inne -- z użycia niewłaściwych konstrukcji, operatorów lub typów. Większość z nich można wykryć i usunąć po kilku minutach uważnej lektury kodu. Zdarzają się jednak i takie błędy, których odnalezienie i skorygowanie zajmuje kilka dni. Błędy te są z reguły łatwe do uniknięcia, jeśli zrozumie się przyczyny ich powstawania.
Książka "W potrzasku języka C" zawiera omówienie najczęściej spotykanych błędów i przyczyn ich powstawania. Nie zawiera ogólników -- jej atutem są konkretne, zaczerpnięte z praktyki, przykłady. Każdy programista prędzej czy później natknie się na jeden z prezentowanych w książce błędów i, dzięki zawartym w niej wiadomościom, będzie w stanie usunąć go i uniknąć w późniejszej pracy.
- Błędy leksykalne i składniowe
- Przepełnienie zakresu
- Problemy z konsolidacjÄ…
- Właściwe stosowanie funkcji bibliotecznych
- Makrodefinicje
- Przenośność kodu
Nie trać czasu na usuwanie błędów --
dowiedz się, co robić, żeby w ogóle nie występowały.
O autorze:
Andrew Koenig jest członkiem działu badającego systemy oprogramowania w Shannon Laboratory firmy AT&T oraz redaktorem projektu komitetów standaryzacyjnych języka C++. [więcej...]
Osoby które kupowały "W potrzasku języka C", wybierały także:
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 98,98 zł, (39,59 zł -60%)
- Internet rzeczy. Podstawy programowania aplikacji i serwer 99,00 zł, (49,50 zł -50%)
- Nowoczesny C. Przegl 119,00 zł, (59,50 zł -50%)
- Efektywny C. Wprowadzenie do profesjonalnego programowania 69,00 zł, (34,50 zł -50%)
- Język C. Solidna wiedza w praktyce. Wydanie VIII 199,00 zł, (99,50 zł -50%)
Spis treści
W potrzasku języka C -- spis treści
Wstęp (7)
Wprowadzenie (11)
Rozdział 1. Pułapki leksykalne (15)
- 1.1. Porównanie a przypisanie (16)
- 1.2. & i | to nie to samo co && i || (17)
- 1.3. Zachłanność analizatora leksykalnego (18)
- 1.4. Literały stałych całkowitych (19)
- 1.5. CiÄ…gi a znaki (20)
Rozdział 2. Pułapki składniowe (23)
- 2.1. Deklaracje funkcji (23)
- 2.2. Priorytety operatorów (26)
- 2.3. Uwaga na średniki! (30)
- 2.4. Instrukcja wyboru switch (32)
- 2.5. Wywołania funkcji (33)
- 2.6. Klauzula else w zagnieżdżonych instrukcjach if (34)
Rozdział 3. Pułapki semantyczne (37)
- 3.1. Wskaźniki i tablice (37)
- 3.2. Wskaźniki nie są tablicami (42)
- 3.3. Deklaracje tablic w roli parametrów (43)
- 3.4. Niebezpieczne synekdochy (45)
- 3.5. Wskaźniki puste a ciągi niepuste (46)
- 3.6. Zliczanie a asymetryczne granice zakresów (46)
- 3.7. Kolejność obliczania w wyrażeniu (55)
- 3.8. Operatory &&, || i ! (57)
- 3.9. Przepełnienie zakresu liczby całkowitej (58)
- 3.10. Zwracanie wartości przez funkcję main (59)
Rozdział 4. Konsolidacja (63)
- 4.1. Czym jest konsolidator? (63)
- 4.2. Deklaracje a definicje (65)
- 4.3. Kolizje nazw i słowo static (66)
- 4.4. Argumenty, parametry i wartości funkcji (67)
- 4.5. Kontrola typów obiektów zewnętrznych (72)
- 4.6. Pliki nagłówkowe (75)
Rozdział 5. Funkcje biblioteczne (77)
- 5.1. Funkcja getchar zwraca wartość typu int (78)
- 5.2. Aktualizacja pliku sekwencyjnego (78)
- 5.3. Buforowanie wyjścia i przydział pamięci (80)
- 5.4. Diagnostyka błędów funkcją errno (81)
- 5.5. Funkcja signal (82)
Rozdział 6. Preprocesor (85)
- 6.1. Odstępy w makrodefinicjach (86)
- 6.2. Makrodefinicje a funkcje (86)
- 6.3. Makrodefinicje a instrukcje (90)
- 6.4. Makrodefinicje a definicje typów (91)
Rozdział 7. Kwestie przenośności (93)
- 7.1. W obliczu zmian (94)
- 7.2. Co z nazwami? (95)
- 7.3. Rozmiar liczby całkowitej (96)
- 7.4. Czy znaki majÄ… znaki? (97)
- 7.5. Operatory przesunięć bitowych (98)
- 7.6. Zerowa komórka pamięci (99)
- 7.7. Obcinanie przy dzieleniu (100)
- 7.8. Rozmiar liczby losowej (101)
- 7.9. Zamiana wielkości liter (102)
- 7.10. Najpierw zwalniać, potem przydzielać ponownie? (103)
- 7.11. Przykładowe problemy nieprzenośności (104)
Rozdział 8. Porady i odpowiedzi do ćwiczeń (109)
- 8.1. Porady (110)
- 8.2. Odpowiedzi do ćwiczeń (113)
Dodatek A Funkcja printf i zmienne listy argumentów (129)
- A.1. Rodzina funkcji printf (129)
- A.1.1. Proste specyfikatory formatu (131)
- A.1.2. Modyfikatory (135)
- A.1.3. Znaczniki (138)
- A.1.4. Zmienna precyzja i szerokość pola (140)
- A.1.5. Neologizmy (141)
- A.1.6. Anachronizmy (141)
- A.2. Zmienne listy argumentów - varargs.h (142)
- A.2.1. Implementacja varargs.h (146)
- A.3. Zmienne listy argumentów w wydaniu ANSI - stdarg.h (147)
Skorowidz (149)