Preprocesador
De cppreference.com
< cpp
El preprocesador se ejecuta antes comenzar la compilación. El resultado del preprocesamiento es un único archivo que después se pasa al compilador propiamente dicho.
[editar] Directivas
Las directivas de preprocesamiento controlan el comportamiento del preprocesador. Cada directiva ocupa una línea y tiene el siguiente formato:
- El carácter
#
- instrucción de preprocesamiento (uno de
define
,undef
,include
,if
,ifdef
,ifndef
,else
,elif
,endif
,line
,error
,warning
,pragma
)[1] - argumentos (dependen de la instrucción)
- salto de línea
La directiva nula (#
seguido por un salto de línea) está permitida y no tiene ningún efecto.
[editar] Capacidades
El preprocesador tiene la capacidad de traducir archivos fuente:
- Compilar condicionalmente partes del archivo de origen (controlado por las directivas
#if
,#ifdef
,#ifndef
,#else
,#elif
y#endif
). - reemplazar macros de texto, con la posibilidad de concatenar o entrecomillar identificadores (controlado por las directivas
#define
y#undef
, y los operadores#
y##
). - incluir otros archivos (controlado por la directiva
#include
) - causar un warning o advertencia (controlado por la directiva
#warning
). - causar un error (controlado por la directiva
#error
).
Se pueden controlar los siguientes aspectos del preprocesador:
- comportamiento definido por la implementación (controlado por directivas
#pragma
). - nombre de archivo e información de línea disponible para el preprocesador (controlado por directivas
#line
).
[editar] Notas
- ↑ Éstas son las directivas definidas por el estándar. El estándar no define el comportamiento de otras directivas: podrían ser ignoradas, tener algún significado útil o hacer que el programa quede incorrectamente formado. Incluso si son ignoradas, se eliminan del código fuente cuando termina el preprocesamiento.