I work in the embedded space and use a compiler from Green Hills.<p>The preprocessor in either C or C++ is evil for the simple matter you can&#x27;t debug it when the thing you&#x27;re debugging is in production, symbols are stripped, and the disassemble resembles nothing you can marry up to actual C or C++ code.  In simple cases, maybe, but in not so simple cases it&#x27;s just evil.<p>A modern compiler will optimized out the global consts anyways too...