Está en la página 1de 3

Fecha: 01/08/2016 (Atrasado)

Nombre: Jostin Peafiel Piza


Curso: 2 Bachillerato A
Pgina Web: https://es.wikipedia.org/wiki/Preprocesador_de_C

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>

int main (void)


{

Fecha: 01/08/2016 (Atrasado)


Nombre: Jostin Peafiel Piza
Curso: 2 Bachillerato A
Pgina Web: https://es.wikipedia.org/wiki/Preprocesador_de_C
printf ("Hola Mundo!\n");
return 0;
}
El preprocesador reemplaza la lnea #include <stdio.h> con el archivo de cabecera del
sistema con ese nombre. En dicha cabecera se declara, entre otras cosas,
la funcinprintf(). Ms concretamente donde se pone la directiva #include se sustituir
por el contenido completo del archivo 'stdio.h'.
Tambin puede escribirse usando dobles comillas: #include "stdio.h". Originalmente
esta distincin consegua diferenciar entre los archivos de cabecera del sistema (<>) y
los de usuario (""). Los compiladores de C y los entornos de desarrollo actuales
disponen de facilidades para indicar dnde se encuentran los distintos archivos de
cabecera. Sin embargo se sigue recomendando usar la misma nomenclatura por
cuestiones de claridad en el cdigo. La localizacin de los archivos de cabecera
pueden ser indicados desde la lnea de comandos o desde un archivo makefile para
hacer el cdigo ms portable.
Se puede utilizar cualquier extensin para los archivos de cabecera. Pero, por
convencin, se utiliza la extensin .h para los archivos de cabecera y .c para los
archivos que no son incluidos por ningn otro. Tambin pueden encontrarse otras
extensiones. Por ejemplo, los archivos con extensin .def suelen ser archivos cuyo
contenido est diseado para ser incluido muchas veces.
#include normalmente obliga a usar protectores de #include o la directiva #pragma
once para prevenir la doble inclusin, porque si se incluye ms de 1 vez el mismo
archivo, (dependiendo del contenido) puede causar que se intente declarar varias
veces las mismas funciones o tipos de variable, lo que va a generar un error al
compilar, esto se intenta prevenir de la siguiente forma:
#ifndef __ARCHIVO_H__
#define __ARCHIVO_H__

/*... declaraciones de funciones, etc. ...*/

#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

Fecha: 01/08/2016 (Atrasado)


Nombre: Jostin Peafiel Piza
Curso: 2 Bachillerato A
Pgina Web: https://es.wikipedia.org/wiki/Preprocesador_de_C
#define __WINDOWS__

#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.

También podría gustarte