The preprocessor runs before the compilation begins. The result of preprocessing is single file which is then passed to the actual compiler.
The preprocessing directives control the behavior of the preprocessor. Each directive occupies one line and has the following things included in it:
# characterdefine, undef, include, if, ifdef, ifndef, else, elif, endif, line, error, pragma)The preprocessor has the source file translation capabilities:
#if, #ifdef, #ifndef, #else, #elif and #endif)#define and #undef, and operators # and ##)#include)#warning)#error)The following aspects of the preprocessor can be controlled:
#pragma)#line)