UC3M

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

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

Compilación de programas en C y función printf

Actividades previas

1. Preguntas sobre gcc

Plan de trabajo

  1. Arranca la máquina virtual y abre una ventana de comandos.

  2. Responde individualmente a estas preguntas y contrasta las respuestas con tu compañero de prácticas:

    • ¿Para qué sirve la opción -o?

    • Pon un ejemplo de advertencia que sólo se muestra con la opción -Wall.

    • ¿Cómo se puede saber el tiempo que tarda en ejecutarse un comando?

    • Si un programa se invoca desde el intérprete con el comando programa a b c d, ¿qué valor tiene el primer parámetro de la función main?

¿Cuánto tiempo has dedicado a esta actividad? mins.

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

¿Cuánto tiempo has dedicado a esta actividad? mins.

3. La función printf

Recursos

Plan de trabajo

  1. Compila y ejecuta el fichero printf.c.

  2. Modifica las cadenas de formato utilizadas en la función printf para que imprima con el siguiente formato (hazlo sin escribir más de dos espacios en blanco consecutivos):

    La letra es              m
    El número es             60345698
    El número hexadecimal es 0X3FA
    El número real es        3.10e+33
    El string es             ABCDE
¿Cuánto tiempo has dedicado a esta actividad? mins.