Szkolenie dostępne na zamówienie
Zaawansowane programowanie w języku C
Zaawansowane aspekty programowania w języku C
Czas trwania szkolenia:3 dni (24h)
Poziom zaawansowania:
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
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