C Programming Fundamentals
Master C — the universal language of Linux and embedded systems. From raw pointers to build tooling and low-level debugging.
Pointers & Memory
Pointer arithmetic, pointer-to-pointer, function pointers, const-correctness, and the C memory model.
Structs & Unions
Struct layout, padding and alignment, bit-fields, unions, and typedef patterns used in embedded protocols.
File I/O
fopen/fread/fwrite, buffered vs unbuffered I/O, seeking, error handling, and binary file formats.
Dynamic Allocation
malloc/calloc/realloc/free, detecting leaks with Valgrind, buffer overflows, and pool allocators.
Makefiles
Rules, variables, automatic variables ($@, $<, $^), pattern rules, phony targets, and multi-directory builds.
GCC Flags & Optimization
Warning flags, -O levels, sanitizers (ASan/UBSan), LTO, cross-compile flags, and reading assembly output.
GDB Debugging
Breakpoints, watchpoints, stack inspection, core dump analysis, remote debugging, and GDB scripting.