Preprocesador
La fase previa a la compilación en C y C++ que procesa las líneas con #, como #include o #define, antes de compilar el código.
Antes de compilar, el preprocesador hace sustituciones de texto: #include copia el contenido de otro archivo y #define define constantes o macros que se reemplazan en el código.
Las macros son simples sustituciones sin comprobar tipos, así que pueden dar sorpresas. En C++ moderno se prefieren constexpr, funciones inline y plantillas.
Un ejemplo
#define PI 3.14159 hace que el preprocesador cambie cada PI del código por ese número antes de compilar.