Zaawansowane programowanie w języku C
LICZBA DNI: 3 (24h)
KOD KURSU: C/ADV
O szkoleniu
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
WYMAGANIA
Od uczestników szkolenia wymagana jest umiejętność programowania w języku C
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
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
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
- Valgrind
- OProfile
Optymalizacja aplikacji
- Techniki optymalizacji
- Rola kompilatora
- Optymalizacja a bezpieczeństwo
