static & extern
Understand linkage, storage duration and how to organize driver modules and private state.
CORE IDEA
Use static for file-local symbols or persistent storage when appropriate; use extern only for deliberate cross-module interfaces.
WHY IT MATTERS
Embedded firmware sits directly between C language rules and hardware behavior.
ENGINEERING VIEW
Check the compiler, architecture reference manual and peripheral documentation together.
DEBUG
Verify the generated behavior with registers, debugger state and physical measurements.
Engineer’s checklist
- Read the MCU reference manual before coding.
- Identify the exact register, field, access width and reset value.
- Protect unrelated bits and respect reserved-bit rules.
- Build with warnings enabled and inspect diagnostics.
- Verify the result on the target hardware.
KEY TAKEAWAY
Use static for file-local symbols or persistent storage when appropriate; use extern only for deliberate cross-module interfaces.