Domain
C
A ground-up walk through the C language itself — written for someone who already knows there are variables and loops somewhere in programming, but wants every concept actually explained, in order, with working examples. This is deliberately not the same material as Embedded C: this domain is "what does this language do," Embedded C is "how does this language behave on a chip with 2KB of RAM and no operating system to catch a mistake." Read this domain first if any of that felt unfamiliar.
Embedded C explicitly assumes you already know the language and
focuses on where bare-metal C diverges from general-purpose C — integer overflow on tiny types,
volatile, linker sections, memory-mapped registers. This domain is the prerequisite: plain
C, taught as its own subject, with nothing assumed. Once you're comfortable here, Embedded C is where
that knowledge gets specialized for firmware, and C++ is where it gets extended with object-oriented
and generic-programming features built directly on top of C's own rules.
Topics
- Introduction to C — what it is, the compilation pipeline, your first programwritten
- Variables, Data Types & Operators — declaring values, the built-in types, and how to combine themwritten
- Control Flow — if/else and switch, with C's truthiness ruleswritten
- Loops — for, while, do-while, break and continuewritten
- Functions — declaration, parameters, return values, the call stack, recursionwritten
- Arrays — 1D and 2D arrays, memory layout, and the array/pointer relationshipwritten
- Strings — the NUL terminator, string.h functions, and safe inputwritten
- Pointers — addresses, dereferencing, passing by reference, and NULLwritten
- Structs & Unions — bundling related values vs. sharing one block of memorywritten
- File I/O & Standard Library — fopen/fread/fwrite, plus the wider standard librarywritten
- Preprocessor & Macros — #include, #define, conditional compilation, header guardswritten
Nothing left in "Planned" — this domain now covers the language ground-up, from a first program through the preprocessor. From here, Embedded C specializes this same knowledge for bare metal.
Read top to bottom the first time through — each chapter is written assuming you've read the ones before it, and says so explicitly wherever it matters. Once this domain is complete, it's meant to be the thing you read once and then never need to reread, the same way Electronics works for circuit fundamentals.