UC3M

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

Arquitectura de Sistemas

Septiembre 2017 - Enero 2018

14.2. Mostrando todas las advertencias

Al contrario que otros compiladores como el de Java, el de C no realiza una comprobación exhaustiva de que el programa cumple estrictamente con la definición del lenguaje. Cuando en un programa en C se omiten ciertos detalles, el compilador asume un comportamiento por defecto y genera igualmente un ejecutable. Pero esta política es peligrosa si el programador no conoce en detalle estos comportamientos que asume el compilador. Por este motivo se ofrece la opción -W que se puede incluir especificando qué tipo de comprobaciones queremos que haga el compilador.

Borra el ejecutable de tu directorio. Compila de nuevo el programa anterior pero esta vez solicitando que se muestren todas las advertencias con el siguiente comando:

$ gcc -Wall -o main_es main_es.c

Verás que, a pesar de no haber cambiado el código, el compilador ahora nos muestra ciertas advertencias pero el ejecutable se ha generado igualmente. En este caso el programa se comporta exactamente como esperamos, pero toda advertencia que muestra el compilador es sobre algún aspecto del código que no está perfectamente especificado y que por tanto puede tener consecuencias en tiempo de ejecución. Lee detenidamente el mensaje de las advertencias y modifica el código para que desaparezcan. No hagas cambios aleatorios en el código, pues así no sabrás cual es la razón exacta para la advertencia.

Te recomendamos que todas las compilaciones que hagas durante el curso las hagas con la opción -Wall. Nosotros lo haremos a la hora de evaluar la calidad de tu código.