C LanguagePreprocesador y Macros


Introducción

Todos los comandos del preprocesador comienzan con el símbolo # hash (libra). La macro AC es solo un comando de preprocesador que se define mediante la directiva #define preprocesador. Durante la etapa de preprocesamiento, el preprocesador de C (una parte del compilador de C) simplemente sustituye el cuerpo de la macro donde aparece su nombre.

Observaciones

Cuando un compilador encuentra una macro en el código, realiza un reemplazo de cadena simple, no se realizan operaciones adicionales. Debido a esto, los cambios realizados por el preprocesador no respetan el alcance de los programas en C; por ejemplo, una definición de macro no se limita a estar dentro de un bloque, por lo que no se ve afectada por un '}' que termina una declaración de bloque.

El preprocesador, por diseño, no se ha completado, hay varios tipos de cálculo que no puede realizar solo el preprocesador.

Por lo general, los compiladores tienen un indicador de línea de comando (o configuración) que nos permite detener la compilación después de la fase de preprocesamiento e inspeccionar el resultado. En las plataformas POSIX esta bandera es -E . Por lo tanto, ejecutar gcc con este indicador imprime la fuente expandida a la salida estándar:

$ gcc -E cprog.c

A menudo, el preprocesador se implementa como un programa separado, que es invocado por el compilador, el nombre común para ese programa es cpp . Varios preprocesadores emiten información de apoyo, como información sobre números de línea, que se utiliza en las fases posteriores de la compilación para generar información de depuración. En el caso de que el preprocesador se base en gcc, la opción -P suprime dicha información.

$ cpp -P cprog.c

Preprocesador y Macros Ejemplos relacionados