
146 Chapter 10: Optimizing Your Code
Limiting the Impact of C++
One of the biggest issues I faced upon deciding to write this book was whether or
not to include C++ in the discussion. Despite my familiarity with C++, I had writ-
ten almost all of my embedded software in C and assembly. In addition, there has
been much debate within the embedded software community about whether C++
is worth the performance penalty. It is generally agreed that C++ programs pro-
duce larger executables that run more slowly than programs written entirely in C.
However, C++ has many benefits for the programmer, and I wanted to talk about
some of those benefits in the book. So I ultimately decided to include C++ in the
discussion, but to use in my examples only those features with the least perfor-
mance penalty.
I believe that many readers will face the same issue in their own embedded sys-
tems programming. Before ending the book, I wanted to briefly justify each of the
C++ features I have used and to warn you about some of the more expensive fea-
tures that I did not use.
Of course, not everything introduced in C++ is expensive. Many older C++ compil-
ers incorporate a technology called C-front that turns C++ programs into C and
feeds the result into a standard C compiler. The mere fact that this is possible
should suggest that the syntactical differences between the languages have little or
no runtime cost associated ...