Advanced C

course image

Advanced C

Understand C on a higher level, including its memory handling, optimizations, and advanced constructs.


Gain an in-depth understanding of the logic behind the C language. Understand how commands written in C are mapped to processor instructions, memory handling, pointers and function callbacks, and more advanced C constructs. Finally, learn how C programs are optimized and applied in specific embedded environments.


Course topics:

  • C data types, arrays vs pointers, casting, little vs big endian
  • Declarations, variables, storage classes, types, constants, static and automatic duration, memory locations, linkage
  • Function caveats, calling conventions, calling from assembly
  • Pointer arithmetic, multi-dimensional arrays, function pointers, void pointers, endianness
  • Input-output and I/O dangers
  • Strings and safe string handling in C, structures, member alignment, and padding
  • Splitting a program, declaration sharing, header files
  • Build process and tools, preprocessor, compiler, linker, scripting
  • Memory handling, buffers, queues, lists, double buffering
  • Cross-compilation, embedded targets, compiler specifics


Software: IDE with a compiler provided by NIT, Chrome browser.

Hardware: Computer with an Internet connection, working speakers, and microphone.

Prior knowledge: Participants should have basic knowledge of programming in C.