es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bandera de compilación de C++ para tratar advertencias y errores.

Actualmente uso g++, Ubuntu 20.04 LTS, C++20.

Hasta ahora, he estado programando con las siguientes banderas de errores/advertencias:
-Wall -Wextra -Werror -pedantic

¿Estas banderas cubren generalmente cada sub bandera como -Wvla, -Weffc++, -Wsign-conversion, etc? ¿O depende de la arquitectura del sistema y el compilador? ¿Qué otras banderas de error debería usar?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Las banderas -Wall, -Wextra y -Werror se consideran las banderas de advertencia más comúnmente utilizadas en la programación de C++. Estas banderas habilitan una amplia gama de advertencias, incluyendo variables no utilizadas, inicialización compleja y referencias potenciales a punteros nulos. Además, la bandera -pedantic habilita advertencias para comportamientos no estándar o indefinidos dentro del código base.

    Sin embargo, estas banderas no cubren todas las sub-banderas como -Wvla, -Weffc++, -Wsign-conversion, etc. La cobertura de estas sub-banderas depende de la arquitectura del sistema y el compilador utilizado. Por ejemplo, -Wvla activa advertencias para matrices de longitud variable, mientras que -Weffc++ habilita advertencias basadas en las recomendaciones del libro Effective C++.

    Si estás buscando optimizar tu código base y eliminar problemas potenciales, puedes considerar agregar más banderas como -Wshadow, la cual señala las variables que ocultan otras variables en ámbitos externos, y -Wconversion, que señala conversiones de tipo. Además, -Wformat-security es otra bandera que puedes usar para hacer cumplir el uso seguro de las funciones printf() y scanf().

    En general, aunque -Wall -Wextra -Werror -pedantic proporcionan una base sólida para la generación de advertencias en un proyecto de C++, el uso de banderas adicionales puede ayudar a detectar y prevenir problemas de código adicionales. Se recomienda revisar y ajustar regularmente las banderas que se utilizan en función de los requisitos del proyecto.

Comments are closed.