Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Preprocesador de C++
El preprocesador de C (cpp) es el preprocesador para el lenguaje de programacin
C. Es el primer programa invocado por el compilador y procesa directivas
como #include,#define y #if. Estas directivas no son especficas de C. En realidad
pueden ser usadas con cualquier tipo de archivo.
El preprocesador utiliza 4 etapas denominadas Fases de traduccin. Aunque alguna
implementacin puede elegir hacer alguna o todas las fases simultneamente, debe
comportarse como si fuesen ejecutadas paso a paso.
Fases
1. Tokenizado lxico - El preprocesador reemplaza la secuencia de trigrafos por
los caracteres que representan.
2. Empalmado de lneas - Las lneas de cdigo que continan con secuencias de
escape de nueva lnea son unidas para formar lneas lgicas.
3. Tokenizacin - Reemplaza los comentarios por espacios en blanco. Divide cada
uno de los elementos a preprocesar por un carcter de separacin.
4. Expansin de macros y gestin de directivas - Ejecuta las lneas con directivas
de preprocesado incluyendo las que incluye otros archivos y las de compilacin
condicional. Adems expande las macros. Desde la versin de C de 1999
tambin gestiona los operadores #Pragma.
Ejemplos
Esta seccin trata con ms detalle ejemplos de uso del preprocesador de C. Es crucial
que existan buenas prcticas de programacin cuando se escriben macros de C.
Sobre todo cuando se trabaja en equipo.
Incluyendo archivos
La forma ms comn de usar el preprocesador es incluir otro archivo:
#include <stdio.h>
#endif
Como resultado, al intentar inclurse el archivo por segunda vez, la operacin "ifndef"
va a dar falso porque __ARCHIVO_H__ ya estaba definido de la primera vez que se
incluy, y a consecuencia se saltea todo el bloque hasta llegar al "endif" que suele
estar al final del archivo.
Compilacin condicional
Las directivas #ifdef, #ifndef, #else, #elif y #endif pueden
compilaciones condicionales.
usarse
para
realizar
#ifdef __WINDOWS__
#include <windows.h>
#else
#include <unistd.h>
#endif
La primera lnea define una macro __WINDOWS__. Las macros pueden estar
definidas por el compilador, se pueden especificar en la lnea de comandos al
compilador o pueden controlar la compilacin del programa desde un archivo makefile.
El cdigo siguiente comprueba si la macro __WINDOWS__ est definida. Si es as,
como en el ejemplo, se incluye el archivo <windows.h>, en caso contrario, se
incluye<unistd.h>.
Ejemplos de otros usos
Como el preprocesador puede invocarse independientemente del proceso de
compilacin de cdigo fuente tambin puede utilizarse como un preprocesador de
propsito general para otros tipos de procesamiento de textos. Ver Preprocesadores
de propsito general para ver otros ejemplos.