Espacios de nombres
Variantes

Preprocesador

De cppreference.com
< c

El preprocesador se ejecuta en la fase de traducción 4, antes de la compilación. El resultado del preprocesamiento es un único archivo que luego se pasa al compilador real.

Directivas

Las directivas de preprocesamiento controlan el comportamiento del preprocesador. Cada directiva ocupa una línea y tiene el siguiente formato:

  • un caracter #
  • una instrucción de preprocesamiento (una de define, undef, include, if, ifdef, ifndef, else, elif, endif, line, error, pragma) [1]
  • argumentos (depende de la instrucción)
  • salto de línea

La directiva null (# seguida de un salto de línea) está permitida y no tiene ningún efecto.

Capacidades

El preprocesador tiene las capacidades de traducción del archivo fuente:

  • compilar condicionalmente partes del archivo fuente (controlado por las directivas #if, #ifdef, #ifndef, #else, #elif y #endif).
  • reemplazar las macros de texto, posiblemente encadenando o citando identificadores (controlado por las directivas #define y #undef, y los operadores # y ##)
  • incluir otros archivos (controlado por la directiva #include)
  • causar un error (controlado por la directiva #error)

Se pueden controlar los siguientes aspectos del preprocesador:

Anotaciones

  1. Estas son las directivas definidas por el estándar. El estándar no define el comportamiento de otras directivas: pueden ser ignoradas, tener algún significado útil, o hacer que el programa esté mal formado. Incluso si se ignoran, se eliminan del código fuente cuando el preprocesador está listo. Una extensión común no estándar es la directiva #warning que emite un mensaje definido por el usuario durante la compilación.

Referencias

  • Standard C11 (ISO/IEC 9899:2011):
  • 6.10 Preprocessing directives (p: 160-178)
  • Standard C99 (ISO/IEC 9899:1999):
  • 6.10 Preprocessing directives (p: 145-162)
  • Standard C89/C90 (ISO/IEC 9899:1990):
  • 3.8 PREPROCESSING DIRECTIVES

Véase también

Documentación de C++ para Preprocesador