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
Requirements
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.