POLISH

C. Rusz głową!

Book information

Publisher
Helion
Year
2013
Language
polish
Format
PDF
Filesize
22 MB (22793472 bytes)
Pages
616\616
Time added
2019-05-18 14:56:27

Description

W obecnych czasach triumfy święcą platforma .NET, Java oraz HTML5 i JavaScript. Mogłoby się wydawać, że język C i inne podobne języki odeszły w niepamięć. Nic bardziej mylnego! W dalszym ciągu są one niezastąpione w wielu dziedzinach. Znajdują zastosowanie wszędzie tam, gdzie wymagana jest pełna kontrola nad sprzętem oraz gwarancja czasu wykonania powierzonych zadań. Dlatego specjaliści znający ten język wciąż są poszukiwani na rynku pracy. Dzięki tej książce możesz dołączyć do ich grona! Kolejne wydanie z serii "Rusz głową" to gwarancja sukcesu. Zastosowanie nowatorskich technik nauki pozwala na błyskawiczne przyswojenie wiedzy. W trakcie lektury poznasz składnię języka C, dostępne typy zmiennych, sposoby zarządzania pamięcią oraz zasady tworzenia przejrzystego kodu. Ponadto nauczysz się biegle obsługiwać kompilator, korzystać z plików nagłówkowych oraz przesyłać komunikaty między procesami. Dzięki licznym ćwiczeniom bez problemu utrwalisz zdobytą wiedzę. Książka ta jest wprost genialną pozycją dla wszystkich osób chcących wkroczyć w świat języka C. Przyda się również studentom na zajęciach z programowania. Warto ją mieć! Zainwestuj czas w naukę C i poznaj: składnię języka sposoby zarządzania pamięcią metody komunikacji z siecią możliwości kompilatora Poznaj język C - ta wiedza zaprocentuje! Spis treści......Page 9 Wprowadzenie......Page 27 Dla kogo jest przeznaczona ta książka?......Page 28 Wiemy, co sobie myślisz......Page 29 Zmuś swój mózg do posłuszeństwa......Page 31 Przeczytaj to......Page 34 Zespół recenzentów technicznych......Page 36 Podziękowania......Page 37 1. Dajmy nurka......Page 39 C to język do pisania małych, szybkich programów......Page 40 Ale jak wygląda skompilowany program napisany w C?......Page 43 A jak można uruchomić program?......Page 47 Dwa rodzaje poleceń......Page 52 Oto kod, jakim aktualnie dysponujemy......Page 53 Liczenie kart? W języku C?......Page 55 Wartości logiczne to nie tylko sprawdzanie równości......Page 56 Jak aktualnie wygląda nasz kod?......Page 63 Pociąg do Switcherado......Page 64 Czasami jeden raz nie wystarcza…......Page 67 Pętle często mają taką samą strukturę…......Page 68 Instrukcji break używamy, by wydostać się z pętli…......Page 69 Twój niezbędnik C......Page 78 2. Na co wskazujesz?......Page 79 Kod C zawiera wskaźniki......Page 80 Grzebiemy w pamięci......Page 81 Stawiamy żagle ze wskaźnikami......Page 82 Spróbujmy przekazać wskaźnik do zmiennej......Page 85 Stosowanie wskaźników......Page 86 Jak przekazać łańcuch znaków do funkcji?......Page 91 Zmienne tablicowe są jak wskaźniki…......Page 92 Co myśli komputer, wykonując nasz kod?......Page 93 Jednak zmienne tablicowe nie są tak do końca wskaźnikami......Page 97 Dlaczego tablice naprawdę zaczynają się od 0?......Page 99 Dlaczego wskaźniki mają typ?......Page 100 Stosowanie wskaźników do wprowadzania danych......Page 103 Używając funkcji scanf(), uważaj!......Page 104 Alternatywą dla scanf() jest fgets()......Page 105 Literały łańcuchowe nie mogą być nigdy modyfikowane......Page 110 Jeśli chcesz zmienić łańcuch — skopiuj go......Page 112 Ściąga z pamięci......Page 118 Twój niezbędnik C......Page 119 2,5. Teoria łańcuchów......Page 121 Desperacko poszukuję Zuzy......Page 122 Utwórz tablicę tablic......Page 123 Odnajdywanie łańcucha zawierającego określony tekst......Page 124 Stosowanie funkcji strstr()......Page 127 Czas na przegląd kodu......Page 132 Tablica tablic czy tablica wskaźników?......Page 136 Twój niezbędnik C......Page 137 3. Rób jedną rzecz, ale rób ją dobrze......Page 139 Małe programy narzędziowe mogą rozwiązywać wielkie problemy......Page 140 Oto sposób wykorzystania programu......Page 144 Ale my nie używamy plików…......Page 145 Możesz skorzystać z przekierowania......Page 146 Przedstawiamy standardowy strumień błędów......Page 156 Domyślnie strumień błędów jest wyświetlany na ekranie......Page 157 fprintf() zapisuje dane w strumieniu......Page 158 Zaktualizujmy kod, by korzystał z funkcji fprintf()......Page 159 Niewielkie programy narzędziowe są elastyczne......Page 164 Nie zmieniaj programu geo2json......Page 165 Różne zadania wymagają różnych narzędzi......Page 166 Połącz wejście i wyjście przy użyciu potoku......Page 167 Program narzędziowy bermuda......Page 168 A jeśli chcemy przekazywać wyniki do więcej niż jednego pliku?......Page 173 Stwórz swoje własne strumienie danych......Page 174 Nieco więcej o funkcji main()......Page 177 Niech biblioteka wykona pracę za nas......Page 185 Twój niezbędnik C......Page 192 4. Podziel go, rozbuduj go......Page 193 Krótki przewodnik po typach danych......Page 198 Nie umieszczaj czegoś dużego w czymś małym......Page 199 Użyj rzutowania, by zapisać wartość zmiennoprzecinkową w zmiennej całkowitej......Page 200 O nie… to bezrobotni aktorzy…......Page 204 Zobaczmy, co się stało z kodem......Page 205 Kompilatory nie lubią niespodzianek......Page 207 Oddziel deklaracje od definicji......Page 209 Tworzenie pierwszego pliku nagłówkowego......Page 210 Jeśli oprogramowałeś często używane operacje…......Page 218 Możesz rozdzielić kod, umieszczając go w osobnych plikach......Page 219 Za kulisami kompilacji......Page 220 Współdzielony kod trzeba umieścić w osobnym pliku źródłowym......Page 222 To nie jest kosmiczna technologia… a może jest?......Page 225 Nie rekompiluj każdego pliku......Page 226 Najpierw skompiluj źródła do plików obiektowych......Page 227 Ciągłe śledzenie zmian w plikach jest trudne......Page 232 Zautomatyzuj kompilacje, używając narzędzia make......Page 234 Jak działa make......Page 235 Przekaż informacje o kodzie, używając pliku makefile......Page 236 Startujemy!......Page 241 Twój niezbędnik C......Page 242 1. Laboratorium C. Arduino......Page 243 5. Wytocz swoje własne struktury......Page 253 Czasami musisz rozdawać wiele danych......Page 254 Rozmowa trójstronna......Page 255 Twórz swoje własne strukturalne typy danych przy użyciu struct......Page 256 Po prostu daj im rybkę......Page 257 Odczytuj pola struktur, używając operatora "."......Page 258 Czy można umieścić jedną strukturę wewnątrz drugiej?......Page 263 Jak zaktualizować zawartość struktury?......Page 272 Ten kod klonuje żółwie......Page 274 Potrzebny będzie wskaźnik na strukturę......Page 275 (*t).age kontra *t.age......Page 276 Czasami rzeczy podobnego typu wymagają danych różnych typów......Page 282 Unie pozwalają używać bloku pamięci na różne sposoby......Page 283 Jak stosować unie?......Page 284 Zmienna typu enum przechowuje symbol......Page 291 Czasami potrzebujemy kontroli na poziomie bitów......Page 297 Pola bitowe zawierają dowolną liczbę bitów......Page 298 Twój niezbędnik C......Page 302 6. Budowanie mostów......Page 303 Czy potrzebujesz elastycznego sposobu przechowywania danych?......Page 304 Listy połączone przypominają łańcuchy danych......Page 305 Listy połączone pozwalają na dodawanie elementów......Page 306 Tworzenie struktur rekurencyjnych......Page 307 Tworzenie wysp w języku C…......Page 308 Wstawianie elementów pośrodku listy......Page 309 Pamięć dynamiczną rezerwuj na stercie......Page 314 Zwróć pamięć, kiedy nie będzie już potrzebna......Page 315 Proś o pamięć, wywołując malloc()…......Page 316 Popraw kod, używając funkcji strdup()......Page 322 Zwalniaj pamięć, gdy jej nie potrzebujesz......Page 326 Przegląd systemu SPIES......Page 336 Detektywi oprogramowania: stosowanie valgrind......Page 338 Skorzystaj z programu valgrind kilkakrotnie, by zebrać więcej dowodów......Page 339 Przeanalizuj dowody......Page 340 Sprawdzenie poprawek......Page 343 Twój niezbędnik C......Page 345 7. Odpicuj swoje funkcje na maksa!......Page 347 Szukając Pana Doskonałego…......Page 348 Przekaż kod do funkcji......Page 352 Musisz przekazać funkcji find() nazwę funkcji testującej......Page 353 Każda nazwa funkcji jest wskaźnikiem do tej funkcji…......Page 354 …ale nie ma żadnego typu danych reprezentującego funkcję......Page 355 Jak utworzyć wskaźnik do funkcji......Page 356 Posortuj to, używając standardowej biblioteki C......Page 361 Użyj wskaźnika do funkcji, by określić porządek sortowania......Page 362 Automatyzacja generowania listów do Jana......Page 370 Stwórz tablicę wskaźników do funkcji......Page 374 Zapewnij swoim funkcjom elastyyyyyczność......Page 379 Twój niezbędnik C......Page 386 8. Wymienialny kod......Page 387 Kod, który możesz zabrać do banku......Page 388 Nawiasy kątowe dołączają standardowe pliki nagłówkowe......Page 390 A co zrobić, jeśli będziesz chciał współużytkować jakiś kod?......Page 391 Współużytkowanie plików nagłówkowych......Page 392 Współużytkowanie plików .o poprzez określanie pełnej ścieżki dostępu......Page 393 Archiwum zawiera pliki .o......Page 394 Utwórz archiwum, używając polecenia ar…......Page 395 I w końcu kompiluj inne programy......Page 396 Siłownia Rusz Głową wchodzi na scenę globalną......Page 401 Obliczanie spalonych kalorii......Page 402 Ale zagadnienie jest nieco bardziej skomplikowane…......Page 405 Programy składają się z wielu fragmentów…......Page 406 Łączenie dynamiczne następuje podczas działania programu......Page 408 Czy pliki .a można łączyć podczas działania programu?......Page 409 Najpierw utwórz plik obiektowy......Page 410 Nazewnictwo bibliotek dynamicznych zależy od platformy systemowej......Page 411 Twój niezbędnik C......Page 423 2. Laboratorium C. OpenCV......Page 425 9. Przekraczanie granic......Page 433 Wywołania systemowe są Twoją gorącą linią z systemem operacyjnym......Page 434 Wtem ktoś włamał się do systemu…......Page 438 Bezpieczeństwo nie jest jedynym problemem......Page 439 Funkcja exec() zapewnia większą kontrolę......Page 440 Istnieje wiele funkcji exec()......Page 441 Funkcje z tablicą argumentów: execv(), execvp() oraz execve()......Page 442 Przekazywanie zmiennych środowiskowych......Page 443 Większość wywołań systemowych zawodzi w taki sam sposób......Page 444 Czytaj doniesienia, używając RSS......Page 452 exec() jest końcem rodu naszego programu......Page 456 Uruchamianie procesu potomnego przy użyciu funkcji fork() i exec()......Page 457 Twój niezbędnik C......Page 463 10. Dobrze jest porozmawiać......Page 465 Przekierowania strumieni wejściowych......Page 466 Zajrzyjmy do wnętrza standardowego procesu......Page 467 Przekierowanie zastępuje deskryptor......Page 468 Funkcja fileno() zwraca deskryptor......Page 469 Czasami trzeba poczekać…......Page 474 Bądź w kontakcie ze swymi potomkami......Page 478 Połącz swoje procesy potokami......Page 479 Studium przypadku: otwieranie doniesień w przeglądarce......Page 480 W procesie rodzicielskim......Page 481 Otwieranie strony w przeglądarce......Page 482 Śmierć procesu......Page 487 Przechwytywanie sygnałów i wykonywanie własnego kodu......Page 488 Struktury sigaction są rejestrowane przy użyciu funkcji sigaction()......Page 489 Modyfikacja kodu i wykorzystanie procedury obsługi sygnałów......Page 490 Używaj polecenia kill, by wysyłać sygnały......Page 493 Wysyłanie do procesu sygnału pobudki......Page 494 Twój niezbędnik C......Page 502 11. Nie ma drugiego takiego miejsca jak 127.0.0.1......Page 503 Internetowy serwer puk-puk......Page 504 Prezentacja serwera puk-puk......Page 505 PNAR — jak serwery komunikują się z internetem......Page 506 Gniazdo nie jest typowym strumieniem danych......Page 508 Czasami serwer nie uruchamia się prawidłowo......Page 512 Dlaczego mama zawsze powtarzała Ci, byś sprawdzał błędy......Page 513 Odczyt danych przesyłanych przez klienta......Page 514 Serwer może rozmawiać tylko z jednym klientem naraz......Page 521 Możesz użyć fork(), by obsłużyć oba klienty jednocześnie......Page 522 Pisanie klienta WWW......Page 526 To zadanie klienta......Page 527 Utwórz gniazdo dla adresu IP......Page 528 Funkcja getaddrinfo() pobiera adresy domen......Page 529 Twój niezbędnik C......Page 536 12. To równoległy świat......Page 537 Zadania są sekwencyjne… lub nie…......Page 538 …a procesy nie zawsze są właściwą odpowiedzią......Page 539 Proste procesy robią po jednej rzeczy naraz......Page 540 Zatrudnij dodatkowych pracowników: skorzystaj z wątków......Page 541 Jak się tworzy wątki?......Page 542 Utwórz wątki, używając funkcji pthread_create()......Page 543 Ten kod nie jest wielobieżny......Page 548 Potrzebujesz sygnalizacji świetlnej......Page 549 Użyj muteksu jako sygnalizacji świetlnej......Page 550 Twój niezbędnik C......Page 557 3. Laboratorium C. Blasteroidy......Page 559 A. Dziesięć najważniejszych rzeczy (których nie opisaliśmy)......Page 575 1. Operatory......Page 576 2. Dyrektywy preprocesora......Page 578 3. Słowo kluczowe static......Page 579 4. Jak duże to jest?......Page 580 5. Automatyczne testowanie......Page 581 6. Więcej o gcc......Page 582 7. Więcej o programie make......Page 584 8. Narzędzia programistyczne......Page 586 9. Tworzenie graficznego interfejsu użytkownika......Page 587 Witryny WWW......Page 588 B. Powtórka z całego materiału......Page 589 Skorowidz......Page 611

Similar books