Preprocessor
From cppreference.com
< cpp
The preprocessor runs before the compilation begins. The result of preprocessing is single file which is then passed to the actual compiler.
[edit] Directives
The preprocessing directives control the behavior of the preprocessor. Each directive occupies one line and has the following format:
- # character
- preprocessing instruction (one of define, undef, include, if, ifdef, ifndef, else, elif, endif, line, error, warning, pragma)
- arguments (depends on the instruction)
- line break
The null directive (# followed by a line break) is allowed and has no effect.
[edit] Capabilities
The preprocessor has the source file translation capabilities:
- conditionally compile of parts of source file (controlled by directive #if, #ifdef, #ifndef, #else, #elif and #endif).
- replace text macros while possibly concatenating or quoting identifiers (controlled by directives #define and #undef, and operators # and ##)
- include other files (controlled by directive #include)
- cause a warning (controlled by directive #warning)
- cause an error (controlled by directive #error)
The following aspects of the preprocessor can be controlled:
- implementation defined behavior (controlled by directives #pragma)
- file name and line information available to the preprocessor (controlled by directives #line)