cpp/preprocessor

The preprocessor is executed at translation phase 4, before the compilation. The result of preprocessing is a single file which is then passed to the actual compiler.

Directives
The preprocessing directives control the behavior of the preprocessor. Each directive occupies one line and has the following format:


 * the character
 * a sequence of:
 * a standard-defined directive name (listed below) followed by the corresponding arguments, or
 * one or more preprocessing tokens where the beginning token is not a standard-defined directive name, in this case the directive is conditionally-supported with implementation-defined semantics, or
 * nothing, in this case the directive has no effect.


 * a line break.

Preprocessing directives must not come from macro expansion.

Capabilities
The preprocessor has the source file translation capabilities:


 *  compile of parts of source file (controlled by directive, , , , , and ).
 *  text macros while possibly concatenating or quoting identifiers (controlled by directives and, and operators  and )
 *  other files (controlled by directive )
 * cause an  (controlled by directive )

The following aspects of the preprocessor can be controlled:
 *  behavior (controlled by directive ). In addition, some compilers support (to varying degrees) the operator  as a non-standard extension.
 *  available to the preprocessor (controlled by directive )