E-book details

Nowoczesny C. Przegląd C23 z przykładami

Nowoczesny C. Przegląd C23 z przykładami

Jarosław Stańczyk

Ebook

Elementarz języka C

Mimo że C - stworzony przez pracownika Laboratoriów Bella Dennisa Ritchiego - liczy sobie pół wieku, wciąż pozostaje niezwykle popularnym proceduralnym językiem ogólnego zastosowania. To dzięki niemu powstają elementy systemów operacyjnych i programów użytkowych. Tymczasem za sprawą Międzynarodowej Organizacji Normalizacyjnej (ISO) światło dzienne ujrzy najnowsza wersja standardu języka, która ukaże się pod koniec 2023 roku.

Właśnie tej iteracji poświęcony jest podręcznik Jarosława Stańczyka - Nowoczesny C. Przegląd C23 z przykładami. Treść została podzielona na trzy części. W pierwszej autor opisuje budowę programu i kod źródłowy języka C, a także przedstawia narzędzia do kompilacji i uruchamiania przykładów dołączonych do książki. Jej trzon stanowią pozostałe dwie części, które zawierają między innymi omówienie języka C i standardowej biblioteki. Prezentowanym zagadnieniom towarzyszą liczne przykłady - przy każdym podano nazwę pliku źródłowego. Wszystkie kody źródłowe zaś można samodzielnie pobrać z serwisu GitHub.

W książce między innymi:

  • nowości i zmiany wprowadzone w C23
  • elementy leksykalne
  • podstawowe typy danych
  • stałe, wyrażenia i operatory
  • instrukcje, funkcje
  • dyrektywy preprocesora
  • biblioteka standardowa

Z językiem C za pan brat!

Wstęp
  • Krótka historia języka C
  • Nowości i zmiany w C23
  • Jak zorganizowana jest ta książka
  • Kody źródłowe
  • W ramach rozrywki

CZEŚĆ I. PODSTAWY

  • 1. Warsztat
    • 1.1. Narzędzia i środowisko pracy
    • 1.2. Uruchamianie przykładów
  • 2. Kod źródłowy
    • 2.1. Struktura kodu źródłowego
    • 2.2. Ograniczenia translacji

CZEŚĆ II. KONCEPCJA JĘZYKA

  • 3. Elementy leksykalne
    • 3.1. Zestawy znaków
    • 3.2. Komentarze
    • 3.3. Identyfikatory
    • 3.4. Deklaracje
  • 4. Podstawowe typy danych
    • 4.1. Klasyfikacja typów
    • 4.2. Typ bool
    • 4.3. Typ char
    • 4.4. Typy całkowitoliczbowe
    • 4.5. Typy zmiennoprzecinkowe
    • 4.6. Typ void
  • 5. Typy wyliczeniowe i typy pochodne
    • 5.1. Typy wyliczeniowe
    • 5.2. Tablice
    • 5.3. Wskaźniki
    • 5.4. Struktury, unie i pola bitowe
  • 6. Jeszcze o typach
    • 6.1. Deklaracja typedef
    • 6.2. Czas trwania obiektów
    • 6.3. Specyfikatory typów
    • 6.4. Kwalifikatory typów
    • 6.5. Specyfikator wyrównania
    • 6.6. Specyfikatory atrybutów
    • 6.7. Typy niekompletne
    • 6.8. Typy zgodne
    • 6.9. Konwersja typów
  • 7. Stałe
    • 7.1. Stałe całkowitoliczbowe
    • 7.2. Stałe zmiennoprzecinkowe
    • 7.3. Stałe wyliczeniowe
    • 7.4. Stałe znakowe
    • 7.5. Literały łańcuchowe
    • 7.6. Stałe predefiniowane
  • 8. Wyrażenia i operatory
    • 8.1. Przetwarzanie wyrażeń
    • 8.2. Operatory
  • 9. Instrukcje
    • 9.1. Instrukcja prosta
    • 9.2. Bloki
    • 9.3. Instrukcje sterujące
  • 10. Funkcje
    • 10.1. Funkcja main
    • 10.2 Prototypy funkcji
    • 10.3. Definicje funkcji
    • 10.4. Specyfikatory funkcji
    • 10.5. Wywołanie funkcji, operator ()
  • 11. Dyrektywy preprocesora
    • 11.1. Dołączanie plików
    • 11.2. Makrodefinicje
    • 11.3. Kompilacja warunkowa
    • 11.4. Inne dyrektywy
    • 11.5. Predefiniowane standardowe makra
    • 11.6. Dyrektywa #pragma

CZEŚĆ III. BIBLIOTEKA STANDARDOWA

  • 12. Wprowadzenie
  • 13. Diagnostyka <assert.h>
    • 13.1. Makra <assert.h>
    • 13.2. Deklaracja static_assert
  • 14. Arytmetyka liczb zespolonych <complex.h>
    • 14.1. Konstrukcja liczb zespolonych i urojonych
    • 14.2. Funkcje manipulujące liczbami zespolonymi
    • 14.3. Dalszy rozwój <complex.h>
  • 15. Klasyfikacja znaków <ctype.h>
    • 15.1. Funkcje klasyfikujące
    • 15.2. Funkcje konwersji znaków
    • 15.3. Dalszy rozwój <ctype.h>
  • 16. Obsługa błędów <errno.h>
    • 16.1. Typy i makra
    • 16.2. Dalszy rozwój <errno.h>
  • 17. Środowisko zmiennoprzecinkowe <fenv.h>
    • 17.1. Dyrektywy #pragma
    • 17.2. Obsługa wyjątków zmiennoprzecinkowych
    • 17.3. Zaokrąglenia
    • 17.4. Środowisko zmiennoprzecinkowe
    • 17.5. Dalszy rozwój <fenv.h>
  • 18. Charakterystyka typów zmiennoprzecinkowych <float.h>
    • 18.1. Dalszy rozwój <float.h>
  • 19. Konwersja formatu typów całkowitoliczbowych <inttypes.h>
    • 19.1. Funkcje operujące na liczbach typu intmax_t
    • 19.2. Makra specyfikatorów formatu
    • 19.3. Dalszy rozwój <inttypes.h>
  • 20. Alternatywna notacja operatorów <iso646.h>
  • 21. Charakterystyka typów całkowitoliczbowych <limits.h>
  • 22. Ustawienia regionalne <locale.h>
    • 22.1. Wprowadzenie
    • 22.2. Ustawienia regionalne
    • 22.3. Dalszy rozwój <locale.h>
  • 23. Funkcje matematyczne <math.h>
    • 23.1. Klasyfikacja i porównywanie liczb
    • 23.2. Funkcje typów zmiennoprzecinkowych
    • 23.3. Dodatkowe funkcje typów zmiennoprzecinkowych dziesiętnych
    • 23.4. Rozszerzenia <math.h>
    • 23.5. Dalszy rozwój <math.h>
  • 24. Skoki odległe <setjmp.h>
    • 24.1. Skoki odległe
  • 25. Obsługa sygnałów <signal.h>
    • 25.1. Wprowadzenie
    • 25.2. Obsługa sygnałów
    • 25.3. Dalszy rozwój <signal.h>
  • 26. Wyrównywanie pamięci <stdalign.h>
  • 27. Zmienna ilość argumentów funkcji <stdarg.h>
    • 27.1. Funkcje o zmiennej ilości argumentów
  • 28. Typy atomowe <stdatomic.h>
    • 28.1. Wolność od blokady
    • 28.2. Typy atomowe i operacje na nich
    • 28.3. Inicjalizacja obiektów atomowych atomic_init
    • 28.4. Szeregowanie pamięci
    • 28.5. Atomowe flagi i operacje na nich
    • 28.6. Dalszy rozwój <stdatomic.h>
  • 29. Narzędzia bitowe i bajtowe <stdbit.h>
    • 29.1. Kolejność bajtów
    • 29.2. Funkcje
    • 29.2.3. Dalszy rozwój <stdbit.h>
  • 30. Wartości i typy logiczne <stdbool.h>
  • 31. Kontrolowana arytmetyka liczb całkowitych <stdckdint.h>
    • 31.1. Makra z rodziny ckd_
    • 31.2. Dalszy rozwój <stdckdint.h>
  • 32. Definicje wspólne <stddef.h>
    • 32.1. Typy
    • 32.2. Makra
  • 33. Typy całkowitoliczbowe <stdint.h>
    • 33.1. Dalszy rozwój <stdint.h>
  • 34. Standardowe wejście i wyjście <stdio.h>
    • 34.1. Wprowadzenie
    • 34.2. Funkcje obsługi błędów wejścia/wyjścia
    • 34.3. Operacja na plikach
    • 34.4. Funkcje dostępu do plików
    • 34.5. Funkcje formatowanego wejścia/wyjścia
    • 34.6. Znakowe wejście/wyjście
    • 34.7. Blokowe funkcje wejścia/wyjścia
    • 34.8. Funkcje pozycjonowania plików
    • 34.9. Dalszy rozwój <stdio.h>
  • 35. Narzędzia ogólne <stdlib.h>
    • 35.1. Konwersja liczb i funkcje arytmetyczne
    • 35.2. Dynamiczne zarządzanie pamięcią
    • 35.3. Komunikacja z systemem operacyjnym
    • 35.4. Narzędzia do wyszukiwania i sortowania
    • 35.5. Funkcje konwersji znaków oraz łańcuchów wielobajtowych i rozszerzonych
    • 35.6. Obsługa błędów ograniczeń zakresu
    • 35.7. Dalszy rozwój <stdlib.h>
  • 36. Funkcje bez powrotu<stdnoreturn.h>
  • 37. Obsługa łańcuchów <string.h>
    • 37.1. Kopiowanie
    • 37.2. Łączenie
    • 37.3. Porównywanie
    • 37.4. Wyszukiwanie
    • 37.5. Pozostałe funkcje
    • 37.6. Obsługa bloków pamięci
    • 37.7. Dalszy rozwój <string.h>
  • 38. Funkcje matematyczne niezależne od typu <tgmath.h>
    • 38.1. Makra wspólne dla typów rzeczywistych i zespolonych
    • 38.2. Makra typów rzeczywistych
    • 38.3. Makra typów zespolonych
    • 38.4. Makra dziesiętnych typów zmiennoprzecinkowych
  • 39. Wątki <threads.h>
    • 39.1. Wątki
    • 39.2. Dostęp do zasobów współdzielonych
    • 39.3. Dalszy rozwój <threads.h>
  • 40. Czas <time.h>
    • 40.1. Typy i makra
    • 40.2. Funkcje reprezentacji czasu
    • 40.3. Funkcje konwersji czasu
    • 40.4. Dalszy rozwój <time.h>
  • 41. Obsługa znaków unicode <uchar.h>
    • 41.1. Konwersja znaków UTF
  • 42. Obsługa znaków wielobajtowych i rozszerzonych <wchar.h>
    • 42.1. Funkcje formatowanego wejścia/wyjścia
    • 42.2. Znakowe wejście/wyjście
    • 42.3. Manipulowanie łańcuchami
    • 42.4. Konwersja znaków i łańcuchów
    • 42.5. Dalszy rozwój <wchar.h>
  • 43. Klasyfikacja znaków rozszerzonych <wctype.h>
    • 43.1. Funkcje klasyfikacji znaków
    • 43.2. Funkcje konwersji znaków
    • 43.3. Dalszy rozwój <wctype.h>

Literatura

Indeks

  • Title: Nowoczesny C. Przegląd C23 z przykładami
  • Author: Jarosław Stańczyk
  • ISBN: 978-83-289-0099-8, 9788328900998
  • Date of issue: 2023-04-25
  • Format: Ebook
  • Item ID: nowocp
  • Publisher: Helion