The C Preprocessor is not a part of the compiler, but is a separate step in the compilation process. In simple terms, a C Preprocessor is just a text substitution tool and it instructs the compiler to do required pre-processing before the actual compilation. We'll refer to the C Preprocessor as CPP.
All preprocessor commands begin with a hash symbol (#). It must be the first nonblank character, and for readability, a preprocessor directive should begin in the first column.
The following are the important preprocessors directives;
Substitutes a preprocessor macro.
Inserts a particular header from another file.
Undefines a preprocessor macro.
Returns true if this macro is defined.
Returns true if this macro is not defined.
Tests if a compile time condition is true.
The alternative for #if.
#else and #if in one statement.
Ends preprocessor conditional.
Prints error message on stderr.
Issues special commands to the compiler, using a standardized method.