The preprocessor is a tool that runs before the compiler. It processes directives that begin with # (e.g., #define, #include, #if). It manipulates the source code before actual compilation. The key role of preprocessors are: File inclusion (#include) Macro definition and expansion (#define) Conditional compilation (#ifdef, #ifndef, etc.) Line control(#line)
Whereas, Macros is a rule or pattern defined using the #define directive that tells the preprocessor how to expand specific code.