Plan Szkolenia
Wprowadzenie
- Przegląd funkcji i zastosowań języka C
Przygotowanie środowiska deweloperskiego
- Wybór IDE
- Konfiguracja kompilatora
Pisanie przykładowego programu
- Definiowanie problemu
- Kodowanie zgodnie z wymaganiami
Definiowanie zakresu zmiennych i funkcji
- Zrozumienie zakresu, widoczności i czasu życia
- Praca z klasami pamięci: auto, extern, register, static
Zarządzanie danymi w programie C
- Poza podstawowymi typami danych
- Praca z zaawansowanymi typami danych: struktury, listy powiązane itp.
- Przechowywanie różnych typów danych w tej samej lokalizacji pamięci
Modyfikowanie właściwości zmiennej
- Poza modyfikatorami typu
- Praca z kwalifikatorami typu: stałe, volatile itp.
Manipulacja bitami w C
- Praca z danymi mniejszymi niż bajt
- Praca z operatorami manipulacji bitami
Kontrolowanie przepływu programu
- Poza sekwencjonowaniem
- Używanie instrukcji goto
Odczyt i zapis danych
- Podsumowanie funkcji wejścia/wyjścia
- Poprawa czytelności wyjścia
Tworzenie kodu wieloplatformowego
- Zrozumienie dyrektyw kompilatora
- Kompilowanie kodu warunkowo
Zwiększanie wydajności programu
- Makro vs funkcje
- Definiowanie makr do uruchamiania fragmentów programu
Dynamiczne alokowanie pamięci
- Zalety używania wskaźników: szybkość wykonania
- Wskaźniki do funkcji
- Dostęp do pamięci i manipulowanie adresem
Debugowanie programu C
- Zaawansowane techniki sprawdzania, wykrywania i poprawiania błędów
- Praca z gdb (Gnu Debugger)
Tworzenie biblioteki statycznej
- Jak biblioteka statyczna jest dołączana do pliku wykonywalnego
- Tworzenie biblioteki statycznej
Tworzenie biblioteki współdzielonej
- Biblioteki statyczne vs biblioteki współdzielone (dynamiczne)
- Jak biblioteka współdzielona jest dołączana i ładowana do pamięci w czasie wykonywania
- Tworzenie biblioteki współdzielonej
Abstrakcja danych w programie
- Przegląd interfejsu, specyfikacji i implementacji
- Tworzenie abstrakcyjnego typu danych
- Testowanie regresyjne abstrakcyjnego typu danych
Wyszukiwanie i sortowanie danych
- Wyszukiwanie w tablicach za pomocą wyszukiwania liniowego, binarnego itp.
- Sortowanie tablic za pomocą sortowania przez wybór, sortowania przez wstawianie, sortowania bąbelkowego
Komunikacja międzyprocesowa i sygnały
- Zrozumienie procesów, gniazd i sygnałów
- Implementacja IPC przy użyciu współdzielonych plików, pamięci współdzielonej, potoków, kolejek komunikatów, gniazd, semaforów itp.
Równoległe uruchamianie programu C
- Równoległe uruchamianie różnych części programu poprzez wielowątkowość
- Pisanie wątku
Zaawansowane programowanie sieciowe
- Podsumowanie protokołów TCP, UDP, IP i innych dominujących
- Obsługa wielu portów, przetrwanie nagłych przerw w sieci itp.
- Pisanie potężnych API gniazd
W kierunku wysokiej jakości kodu
- Przegląd kodu przez kolegów i programowanie równoległe
- Waga iteracyjnego kodowania (refaktoryzacja)
Podsumowanie i zakończenie
Wymagania
- Doświadczenie w programowaniu w C
Grupa docelowa
- Programiści
- Deweloperzy
Opinie uczestników (2)
ćwiczenia i metodyka
Javier MIllan Rios - si
Szkolenie - Advanced C Programming
Przetłumaczone przez sztuczną inteligencję
Ciekawy i szeroki zakres
Maciej Perkowski - Nordic Semiconductor
Szkolenie - Advanced C Programming
Przetłumaczone przez sztuczną inteligencję