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.
Contenido |
[editar] 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.
[editar] 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:
- el comportamiento definido en la implementación (controlado por la directiva
#pragma
y el operador_Pragma
(desde C99)) - nombre de archivo e información de línea disponible para el preprocesador (controlado por las directivas
#line
)
[editar] Anotaciones
- ↑ 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.
[editar] 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
[editar] Véase también
Documentación de C++ para Preprocesador
|