Szkolenie: Zaawansowane programowanie w języku C
Zaawansowane aspekty programowania w języku C
Czas trwania szkolenia:3 dni (24h)
Kod kursu:C/ADV
Zaawansowane programowanie w języku C
Cele szkolenia
Poznanie zaawansowanych aspektów programowania oraz konstrukcji języka C
Umiejętność tworzenia aplikacji na architektury 32- i 64-bitowe
Praktyka bezpiecznego zarządzania pamięcią oraz tworzenia i testowania aplikacji wielowątkowych
Dla kogo?
Szkolenie adresowane jest do osób znających język C chcących poszerzyć swoje kompetencje i umiejętności w zakresie programowania i optymalizacji aplikacji
Zalety
Szkolenie oparte jest o najnowszy standard języka C
Uczestnicy zrealizują wiele praktycznych zadań, które zobrazują poruszane problemy implementacyjne
Podczas szkolenia w praktyce zostaną wykorzystane narzędzia profilowania i optymalizacji aplikacji w języku C
Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Wymagania
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Programowanie i elementy języka C
Instrukcje języka
Działanie wskaźników
Stos i sterta
Tablice wielowymiarowe
Formatowanie ciągów znaków
Funkcje i makra ze zmienną liczbą argumentów
Funkcje inline
Asembler inline
Przydatne opcje preprocesora i kompilatora
Kompilator GCC, Clang i MSVC
Aplikacje dla systemów 32- i 64-bitowych
Zasady tworzenia przenośnych aplikacji
Wykorzystanie możliwości platformy 64-bitowej
Migracja aplikacji
Arytmetyka
Przegląd typów arytmetycznych
Unikanie błędu przekroczenia zakresu liczb całkowitych
Arytmetyka zmiennoprzecinkowa
Klasy pamięci zmiennych i modyfikatory typów
Zmienne statyczne, zewnętrzne i rejestrowe
Zmienne ulotne
Stałe
Zarządzanie pamięcią
Zapobieganie błędom typu przepełnienie bufora
Wykorzystanie bezpiecznych funkcji
Programowanie wielowątkowe
Projektowanie aplikacji wielowątkowych
API POSIX i Windows dla wątków
Działanie i wykorzystanie interfejsu OpenMP
Funkcje setjmp i longjmp
Synchronizacja pomiędzy wątkami
Testowanie aplikacji wielowątkowych
Narzędzia wspomagające debugowanie i profilowanie aplikacji
Rozszerzenia kompilatorów
gprof
gcov i lcov
Valgrind
OProfile
Optymalizacja aplikacji
Techniki optymalizacji
Rola kompilatora
Optymalizacja a bezpieczeństwo