Optimizing C for Embedded Systems presents several techniques used for optimizing software in embedded systems. The focus is on embedded systems programmed using the C language; however, the techniques presented are applicable to any software development in any software language. The topics presented are: optimization tradeoffs, rules of optimization, generic optimization techniques for embedded systems, and compiler optimizations.