Course
C Programming
Pointers, dynamic memory, the compilation pipeline, and undefined behavior — the rigorous core-C skills every firmware interview probes.
4h 30m total11 lessonsBeginner friendly
Get started
Enroll to track your progress and unlock the lesson shell.
- Progress tracked per lesson
- Course shows up in your dashboard
- Bookmarks, notes & more (coming soon)
Lesson Content
0/11 done- 11The C Compilation PipelineWhat gcc actually does between your .c file and a flashable binary, and why 'undefined reference' and 'implicit declaration' are different bugs at different stages.20 min
- 22Pointers & AddressesA pointer is just a variable that holds an address. Master & and *, NULL, and how passing a pointer lets a function reach back and modify the caller's data.25 min
- 33Pointer Arithmetic & ArraysWhy arr[i] is literally *(arr + i), how pointer math scales by type size, and the array-to-pointer decay that loses your size the moment you call a function.25 min
- 44Dynamic Memory: malloc & freeSizing memory at runtime with malloc/calloc/realloc, and the discipline of free that prevents leaks, double-frees, and use-after-free bugs.25 min
- 55Stack vs HeapWhere your variables actually live: automatic stack storage vs manual heap allocation, and why returning a pointer to a local is the classic firmware crash.25 min
- 66Structs, Unions & BitfieldsGroup related data, overlay the same bytes two ways, and pack flags into bits, plus the padding and alignment rules that decide sizeof and bite packet parsing.25 min
- 77Bit Manipulation & MasksSet, clear, toggle, and test individual bits without disturbing their neighbors: the read-modify-write idioms behind every GPIO and peripheral driver.25 min
- 88const, volatile & staticThree small keywords with outsized consequences: const for intent, volatile for hardware and ISR-shared data, static for lifetime and linkage, and why volatile is not atomic.25 min
- 99Function Pointers & CallbacksStore a function in a variable, pass behavior as an argument, and build dispatch tables: the mechanism behind qsort, HAL callbacks, and interrupt vector tables.25 min
- 1010The PreprocessorText substitution before the compiler ever runs: object and function macros, header guards, conditional compilation, and why a naive MAX macro evaluates its argument twice.25 min
- 1111Undefined Behavior & PitfallsWhy code that works at -O0 breaks at -O2: what undefined behavior is, the catalog of UB every firmware engineer must recognize, and how sanitizers catch it.25 min
Stay consistent, achieve mastery!
Complete more lessons to level up your skills.