Nowe wydanie tego klasycznego podręcznika zawiera jednoznaczne i szczegółowe wyjaśnienie każdej funkcjonalności języka C i biblioteki wykonawczej, włącznie z wielowątkowością, generycznymi makrami i funkcjami bibliotecznymi wprowadzonymi w w nowej wersji standardu C (C11).
Każdy programista C, który potrzebuje poznać efekty mniej znanej funkcji lub zrozumieć, jak musi się ona zachowywać zgodnie ze standardem, znajdzie tu potrzebne informacje wraz z przykładami.
Idealna dla doświadczonych programistów C i C++, książka zawiera również omówienie popularnych narzędzi z kolekcji oprogramowania GNU. Czytelnik dowie się, jak budować programy przy użyciu GNU Make, kompilować pliki wykonywalne z kodu źródłowego oraz testować i debugować programy za pomocą debugerów GNU .
Trzy części tej autorytatywnej książki obejmują: • Koncepcje języka C i elementy składniowe, z odrębnymi rozdziałami poświęconymi typom, wyrażeń, wskaźników, zarządzania pamięcią, obsługi wejścia/wyjścia i innych. • Standardowa biblioteka C, obejmująca opis standardowych nagłówków i szczegółowe omówienie wszystkich funkcji bibliotecznych. • Podstawowe narzędzia programisty C ze zbioru oprogramowania GNU, wraz z instrukcjami ich użycia w Eclipse IDE.
Język C w pigułce to wspaniałe narzędzie dla programistów C. W jednym miejscu znajdziemy omówienie najnowszych usprawnień dodanych w wersji 2011 standardu.
Peter Prinz prowadzi wykłady dla tysięcy programistów i projektantów oprogramowania dla systemów Unix i Windows. Jest również współautorem kilku książek o projektowaniu oprogramowania w językach C/C++.
Tony Crawford jest autorem i tłumaczem, zajmującym się programowaniem w C, lokalizacjami oprogramowania i administrowaniem sieciami.
Spis treści:
Część I: Język
1 Podstawy języka 3 Cechy języka C 3 Struktura programów w języku C 4 Pliki źródłowe 6 Komentarze 7 Zbiory znaków 9 Identyfikatory 15 Jak działa kompilator C 20
2 Typy 25 Typologia 25 Typy całkowite 26 Typy zmiennopozycyjne 33 Zespolone typy zmiennopozycyjne 36 Typy wyliczeniowe 37 Typ void 38 Wyrównanie obiektów w pamięci 40
3 Literały 41 Stałe całkowite 41 Stałe zmiennopozycyjne 42 Stałe znakowe 44 Literały łańcuchowe 48
4 Przekształcenia typów 53 Przekształcenia typów arytmetycznych 54 Przekształcenia typów niearytmetycznych 62 Jawne przekształcenia wskaźników 64
5 Wyrażenia i operatory 71 Jak są przetwarzane wyrażenia 72 Szczegóły dotyczące operatorów 78 Wyrażenia stałe 104
6 Instrukcje 107 Instrukcje wyrażeniowe 107 Instrukcje blokowe 108 Pętle 109 Instrukcje sterujące 114 Przeskoki bezwarunkowe 118
7 Funkcje 123 Definicje funkcji123 Deklaracje funkcji 131 Jak są wykonywane funkcje 133 Wskaźniki jako argumenty i zwracane wartości 133 Funkcje otwarte 135 Funkcje, które niczego nie zwracają 137 Funkcje rekurencyjne 137 Zmienna liczba argumentów 139
8 Tablice 141 Definiowanie tablic 141 Dostęp do elementów tablicy 143 Inicjalizowanie tablic 144 Łańcuchy 146 Tablice wielowymiarowe 149 Tablice jako argumenty funkcji 151
9 Wskaźniki 155 Deklarowanie wskaźników 155 Operacje ze wskaźnikami 159 Wskaźniki i kwalifikatory typu 163 Wskaźniki do tablic i tablice wskaźników 167 Wskaźniki do funkcji 172
10 Struktury, unie i pola bitowe 175 Struktury 175 Unie 187 Anonimowe struktury i unie 189 Pola bitowe 190
11 Deklaracje 193 Deklaracje obiektów i funkcji 194 Nazwy typów 202 Deklaracje typedef203 Deklaracje _Static_assert 205 Łączność identyfikatorów 206 Czas trwania obiektów w pamięci 208 Inicjalizacja 209
12 Dynamiczne zarządzanie pamięcią 211 Dynamiczne alokowanie pamięci 212 Cechy zaalokowanej pamięci 214 Zmiana ilości i zwalnianie pamięci 214 Drzewo binarne ogólnego przeznaczenia 216
13 Wejście i wyjście 229 Strumienie 230 Pliki 231 Otwieranie i zamykanie plików 234 Odczytywanie i zapisywanie 236 Bezpośredni dostęp do pliku 257
14 Wielowątkowość 261 Wątki 262 Dostęp do danych współdzielonych 267 Komunikacja między wątkami: zmienne warunkowe 275 Obiekty lokalne wątku i pamięć własna wątku 280
15 Dyrektywy preprocesora 285 Włączanie zawartości plików nagłówkowych286 Definiowanie i używanie makr 288 Makra generyczne 296 Kompilacja warunkowa 297 Definiowanie numerów wierszy 299 Generowanie komunikatów błędu 300 Dyrektywa #pragma300 Operator _Pragma301 Makra predefiniowane 302
Część II: Biblioteka standardowa
16 Nagłówki standardowe 307 Wykorzystywanie nagłówków standardowych 308 Funkcje ze sprawdzaniem zakresów 312 Zawartość nagłówków standardowych 313
17 Rzut oka na funkcje 347 Wejście i wyjście347 Funkcje matematyczne 349 Klasyfikacja i przekształcanie znaków 357 Przetwarzanie łańcuchów 359 Znaki wielobajtowe 361 Przekształcenia między liczbami i łańcuchami 362 Wyszukiwanie i sortowanie 364 Obsługa bloku pamięci 364 Dynamiczne zarządzanie pamięcią 365 Data i czas 365 Sterowanie procesem 367 Internacjonalizacja 368 Nielokalne skoki369 Wielowątkowość (C11) 370 Debugowanie 374 Komunikaty błędu375
18 Funkcje biblioteki standardowej 377
Część III: Podstawowe narzędzia
19 Kompilowanie z wykorzystaniem GCC 745 GNU Compiler Collection 745 Pobieranie i instalowanie GCC 746 Kompilowanie programów C za pomocą GCC747 Dialekty C 759 Optymalizacja 762 Debugowanie 766 Profilowanie 767 Podsumowanie opcji i zmiennych środowiskowych 767
20 Wykorzystanie make do budowania programów C 773 Elementy docelowe, zależności i polecenia 774 Makefile 774 Reguły 775 Komentarze 782 Zmienne 783 Cele pozorne 791 Inne atrybuty elementu docelowego 793 Makra 794 Funkcje 795 Dyrektywy 800 Uruchamianie make804
21 Debugowanie programów C za pomocą GDB 813 Instalowanie GDB 814 Przykładowa sesja debugowania 814 Uruchamianie GDB 819 Korzystanie z poleceń GDB 825 Analiza stosu 838 Analiza plików zrzutu pamięci w GDB 850
22 Tworzenie programów C za pomocą IDE 853 Środowiska IDE dla C 853 Eclipse dla C/C++ 854 Tworzenie programu C za pomocą Eclipse 856 Debugowanie programu C w Eclipse 860 Więcej informacji na temat środowiska Eclipse 863 Indeks 865 O autorach 885 Najniższa cena z 30 dni przed obniżką 99,54zł
Język C w pigułce. Kompletny przewodnik Wydanie II
|