UC3M

Grado en Ing. Telemática/Sist. Audiovisuales/Sist. de Comunicaciones

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

14.13.4. El preprocesador y las líneas que comienzan por #

Recursos

  • La máquina virtual.

  • Ficheros main.c y main.h que debes descargarte en tu directorio actual.

Plan de trabajo

  • Asegúrate de que entiendes cual es el efecto de las directivas #include, #define y #ifdef ... #endif.

  • Responde a las siguientes preguntas y comprueba las respuestas con tu compañero de prácticas antes de la sesión del laboratorio.

    1. ¿Qué diferencia hay entre las directivas #include <fichero.h> y #include "fichero.h"?

    2. Si el programa main.c incluye el fichero main.h, ¿es correcto el siguiente comando?

      $ gcc -o main main.c
    3. ¿Qué diferencia hay entre la directiva #define SIMBOLO y #define SIMBOLO 10?

    4. Supongamos que quieres tener dos versiones de un programa que has diseñado tú. La primera versión la utilizas para depurar errores con lo que el programa imprime por pantalla todo tipo de mensajes de comprobación. La segunda versión es para el cliente y esos mensajes no pueden aparecer en pantalla. ¿Cómo conseguirías esto utilizando la directiva #ifdef?

  • Prepara la máquina virtual para trabajar con un terminal de comandos y el compilador.

  • Edita los ficheros main.c y main.h. Además de la directiva #ifdef el programa utiliza la directiva #ifndef que simplemente es la negación de la anterior. Crea dos versiones del ejecutable una que imprima msg1 y no msg2, y la otra que imprima los dos mensajes.