
-
-
Koszyk jest pustySuma 0
- Kategorie
-
Efektywny C. Wprowadzenie do profesjonalnego programowania

Ta książka stanowi przystępne wprowadzenie do tworzenia w języku C profesjonalnego kodu wysokiej jakości. Jest adresowana do każdego, kto chce szybko opanować umiejętność pisania poprawnego, przenośnego i bezpiecznego kodu. Ułatwia również zrozumienie kluczowych zagadnień związanych z programowaniem w C, dzięki czemu wkrótce będziesz tworzyć programy, rozwiązywać problemy i budować działające systemy. Omówiono tu także tematykę debugowania, testowania i analizy kodu C. Sporo miejsca poświęcono dobrym praktykom programowania, dzięki którym łatwiej jest tworzyć poprawny i bezpieczny kod. Poszczególne rozdziały zostały uzupełnione zwięzłymi przykładami kodu i ćwiczeniami pozwalającymi utrwalić prezentowaną treść.
Wysyłka w ciągu | 24 godziny |
Kod kreskowy | |
ISBN | 978-83-283-8343-2 |
EAN | 9788328383432 |
C jest systemowym językiem programowania, więc zapewnia maksymalną wydajność sprzętu bazowego. Program napisany w C współpracuje bezpośrednio z warstwą sprzętową, co daje pełną kontrolę nad jego wykonywaniem, a sam kod jest krótki, prosty i działa szybko. Równocześnie można korzystać z zalet programowania wysokiego poziomu. W efekcie C od dwóch dekad pozostaje jednym z najpopularniejszych języków programowania. Trzeba jednak pamiętać o bardzo ważnym szczególe: programista, który używa C, musi wiedzieć, co robi.
Ta książka stanowi przystępne wprowadzenie do tworzenia w języku C profesjonalnego kodu wysokiej jakości. Jest adresowana do każdego, kto chce szybko opanować umiejętność pisania poprawnego, przenośnego i bezpiecznego kodu. Ułatwia również zrozumienie kluczowych zagadnień związanych z programowaniem w C, dzięki czemu wkrótce będziesz tworzyć programy, rozwiązywać problemy i budować działające systemy. Omówiono tu także tematykę debugowania, testowania i analizy kodu C. Sporo miejsca poświęcono dobrym praktykom programowania, dzięki którym łatwiej jest tworzyć poprawny i bezpieczny kod. Poszczególne rozdziały zostały uzupełnione zwięzłymi przykładami kodu i ćwiczeniami pozwalającymi utrwalić prezentowaną treść.
W książce:
- struktura programu napisanego w C, typy podstawowe, operatory, zmienne i funkcje
- przepływ sterowania programu i dynamiczna alokacja pamięci
- kodowanie i typy znaków
- operacje wejścia-wyjścia i standardowe strumienie C
- wykorzystywanie preprocesora
- testowanie, debugowanie i analiza kodu C
Słowo wstępne Pascala Cuoqa Słowo wstępne Olliego Whitehouse'a Podziękowania Wprowadzenie Krótka historia języka C Standard języka C Standard CERT tworzenia kodu w języku C Dla kogo jest ta książka? Zawartość książki 1. Wprowadzenie do języka C Tworzenie pierwszego programu C Kompilowanie i uruchamianie programu Dyrektywy preprocesora Funkcja main Sprawdzanie wartości zwracanych funkcji Sformatowane dane wyjściowe Edytory i zintegrowane środowiska programistyczne Kompilatory GNU Compiler Collection Clang Microsoft Visual Studio Przenośność Zachowanie zdefiniowane w implementacji Zachowanie, którego nie określono Zachowanie niezdefiniowane Zachowanie powiązane z ustawieniami regionalnymi i wspólne rozszerzenia Podsumowanie 2. Obiekty, funkcje i typy Obiekty, funkcje, typy i wskaźniki Deklarowanie zmiennych Zamiana wartości (pierwsza próba) Zamiana wartości (druga próba) Zasięg Okres przechowywania Wyrównanie Typy obiektów Typy boolowskie Typy znakowe Typy liczbowe Typy funkcyjne Typy pochodne Typy wskaźnikowe Tablice Struktury Unie Znaczniki Kwalifikatory typu const volatile restrict Ćwiczenia Podsumowanie 3. Typy arytmetyczne Liczby całkowite Dopełnienie i dokładność Plik nagłówkowy Deklarowanie typów całkowitoliczbowych Typy całkowitoliczbowe bez znaku Typy całkowitoliczbowe ze znakiem Stałe całkowitoliczbowe Reprezentacja zmiennoprzecinkowa Typy zmiennoprzecinkowe Arytmetyka liczb zmiennoprzecinkowych Wartości zmiennoprzecinkowe Stałe zmiennoprzecinkowe Przekształcanie typów arytmetycznych Ranga przekształcenia typów całkowitoliczbowych Promocje typów całkowitoliczbowych Zwykłe przekształcenia arytmetyczne Przykład przekształcenia niejawnego Bezpieczne przekształcenia Podsumowanie 4. Wyrażenia i operatory Zwykłe przypisanie Wyznaczanie wartości Wywoływanie funkcji Operatory inkrementacji i dekrementacji Pierwszeństwo operatorów i asocjatywność Kolejność wyznaczania wartości Niesekwencyjne i sekwencyjne nieścisłe wyznaczanie wartości Punkty sekwencji Operator sizeof Operatory arytmetyczne Jednoargumentowe operatory + i - Operator logiczny negacji Operatory multiplikatywne Operatory addytywne Operatory bitowe Operator dopełnienia Operatory przesunięcia Operator koniunkcji bitowej AND Operator bitowej alternatywy rozłącznej XOR Operator alternatywy bitowej OR Operatory logiczne Operatory rzutowania Operator warunkowy Operator _Alignof Operatory relacyjne Operatory przypisania złożonego Operator przecinka Arytmetyka wskaźnikowa Podsumowanie 5. Przepływ sterowania Instrukcje wyrażeniowe Instrukcje złożone Instrukcje wyboru Instrukcja if Instrukcja switch Instrukcje iteracji Instrukcja while Instrukcja do...while Instrukcja for Instrukcje skoku Instrukcja goto Instrukcja continue Instrukcja break Instrukcja return Ćwiczenia Podsumowanie 6. Pamięć alokowana dynamicznie Okres przechowywania Menedżery sterty i pamięci Kiedy korzystać z pamięci alokowanej dynamicznie Funkcje zarządzania pamięcią Funkcja malloc Funkcja aligned_alloc Funkcja calloc Funkcja realloc Funkcja reallocarray Funkcja free Stany pamięci Elastyczne elementy składowe tablicy Inne dynamicznie alokowane obszary pamięci Funkcja alloca Tablice o zmiennej długości Debugowanie problemów związanych z alokowanym obszarem pamięci Narzędzie dmalloc Systemy, w których bezpieczeństwo ma krytyczne znaczenie Ćwiczenia Podsumowanie 7. Znaki i łańcuchy Znaki ASCII Unicode Źródłowy i wykonawczy zestaw znaków Typy danych Stałe znakowe Sekwencje wyjścia Linux Windows Konwersja znaków Łańcuchy Literały łańcuchowe Funkcje obsługi łańcuchów Pliki nagłówkowe i Interfejsy sprawdzające ograniczenia dodatku Annex K POSIX Microsoft Podsumowanie 8. Operacje wejścia-wyjścia Standardowe strumienie operacji wejścia-wyjścia Buforowanie strumieni Strumienie predefiniowane Orientacja strumienia Strumienie tekstowe i binarne Otwieranie i tworzenie plików Funkcja fopen Funkcja open standardu POSIX Zamykanie plików Funkcja fclose Funkcja close standardu POSIX Odczytywanie i zapisywanie znaków oraz wierszy Opróżnianie strumieni Ustawianie pozycji w pliku Usuwanie plików i zmienianie ich nazwy Użycie plików tymczasowych Wczytywanie strumieni tekstu sformatowanego Odczytywanie strumieni binarnych i wykonywanie w nich zapisu Podsumowanie 9. Preprocesor Proces kompilacji Dołączanie plików Łańcuchy dołączania z apostrofami i nawiasami kątowymi Dołączanie warunkowe Generowanie błędów Zastosowanie strażników plików nagłówkowych Definicje makr Zastępowanie makr Makra typu ogólnego Makra predefiniowane Podsumowanie 10. Struktura programu Podstawy komponentyzacji Sprzęganie i spójność Wielokrotne użycie kodu Abstrakcje danych Typy nieprzenikalne Pliki wykonywalne Konsolidacja Tworzenie struktury prostego programu Kompilowanie kodu Podsumowanie 11. Debugowanie, testowanie i analizowanie Asercje Asercje statyczne Asercje fazy uruchamiania Ustawienia i flagi kompilatora GCC i Clang Visual C++ Debugowanie Testowanie jednostkowe Analiza statyczna Analiza dynamiczna AddressSanitizer Ćwiczenia Podsumowanie Bibliografia
Robert Seacord jest dyrektorem ds. technicznych w firmie NCC Group. Zajmuje się szkoleniami z zakresu tworzenia bezpiecznego kodu w C, C++ i w innych językach. Jest również członkiem międzynarodowej grupy roboczej standaryzacji ISO/IEC JTC1/SC22/WG14. Autor kilku dobrze przyjętych książek i licznych artykułów w czasopismach branżowych.
Polub nas na Facebooku