C Language - Advanced Programming (C2)

Programming, C, C++

Location, current course term

Contact us

Vlastní Školení na míru (termín, lokalita, obsah, délka)

The course:

Hide detail
  • Programovací jazyk C
    1. C99, C11, C18
    2. Kompilace a linkování
    3. Makefile a build systémy
  • Opakování
    1. Funkce a makra
    2. Ukazatele a adresy
    3. Text a binární data
    4. Strukturované typy
    5. Cykly, podmínky a goto
  • Paralelní programování
    1. Vlákna a synchronizace
    2. Sdílené datové struktury
  • Dynamické datové struktury
    1. Pole a buffery
    2. Spojové seznamy, stromy a grafy
    3. Dynamická alokace paměti
  • Synchronizace sdílených dat
    1. Souběh konfliktních operací
    2. Atomické proměnné
    3. Zamykání datových struktur
    4. Bezzámkové datové struktury
  • Plánovač a smyčka událostí
    1. Programování reakcí na události
    2. Zpětné volání funkcí
    3. Odložené zpracování
  • Polymorfismus
    1. Callback a data
    2. Tagovaný polymorfismus
    3. Struktura s operacemi
    4. Dynamické odbavení volání
  • Prvky objektového programování
    1. Vnořené struktury
    2. Typové informace za běhu
    3. Návrh objektových hierarchií
  • Rekurzivní volání funkcí
    1. Alternativa k iterativnímu přístupu
    2. Procházení rekurzivních datových struktur
    3. Nepřímá rekurze a rekurze přes callback
    4. Tail rekurze
  • Obecná doporučení
    1. Návrh aplikace a datových struktur
    2. Nedefinované chování
    3. Ladění aplikací
    4. Zpětná a dopředná kompatibilita
Recommended previous course:
C/C++ Programming Essentials (C1)
Recommended subsequent course:
Design Patterns in C (C3)
Schedule:
3 days (9:00 AM - 5:00 PM )
Language:

·       C programming language

o   C99, C11, C18

o   Compilation and linking

o   Makefiles and build systems

·       Revision of the basics

o   Functions and macros

o   Pointers and addresses

o   Text and binary data

o   Structured types

o   Loops, conditions and goto

·       Parallel programming

o   Threads and synchronization

o   Shared data structures

·       Dynamic data structures

o   Arrays and buffers

o   Linked lists, trees and graphs

o   Dynamic memory allocation

·       Shared data synchronization

o   Concurrency of conflicting operations

o   Atomic variables

o   Locking data structures

o   Lock-free data structures

·       Scheduler and event loop

o   Event response programming

o   Function callbacks

o   Deferred processing

·       Polymorphism

o   Callbacks and data

o   Tagged polymorphism

o   Structure with operations

o   Dynamic call handling

·       Elements of object-oriented programming

o   Nested structures

o   Type information at runtime

o   Designing object hierarchies

·       Recursive function calls

o   An alternative to the iterative approach

o   Browsing recursive data structures

o   Indirect recursion and callback recursion

o   Tail recursion

·       General recommendations

o   Application and data structure design

o   Undefined behavior

o   Application tuning

o   Backward and forward compatibility