The C++ preprocessor runs before any other compilation happens. Commands given to the preprocessor allow the programmer to define variables, perform text substitution, and test simple conditions.
| # and ## | manipulate strings | 
| #define | define macrodefinition | 
| #error | display an error message | 
| #if, #ifdef, #ifndef, #else, #elif, and #endif | conditional operators | 
| #include | insert the contents of another file | 
| #line | set line and file information | 
| #pragma | implementation specific command | 
| #undef | used to undefine macrodefinitions | 
| Predefined preprocessor variables | miscellaneous preprocessor variables |