Pro lesson · Preview
Undefined Behavior & Pitfalls
Why 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 read
This lesson is part of Pro
Upgrade to unlock the full lesson and the complete interview Q&A.
Unlock with Pro5 interview questions on this topic
Each one opens a full worked answer.
What is undefined behavior, and how is it different from a bug that produces a wrong value?Why might code work at -O0 but break at -O2?What's the difference between signed and unsigned integer overflow?What is the strict aliasing rule and how do you safely reinterpret bytes?How do you find undefined behavior in a codebase?
This is just the start
Sign up free to track your progress through this course, mark lessons complete, and work through the full interview Q&A.
More in C Programming
The C Compilation PipelinePointers & AddressesPointer Arithmetic & Arrays
Dynamic Memory: malloc & free
Stack vs Heap
Structs, Unions & Bitfields