Siempre use -O
o superior ( -O1
, -O2
, -Os
, etc.). En el nivel de optimización predeterminado, gcc busca la velocidad de compilación y no hace suficiente análisis para advertir sobre cosas como variables unitarias.
Considere hacer una -Werror
política, ya que las advertencias que no detienen la compilación tienden a ser ignoradas.
-Wall
prácticamente enciende las advertencias que muy probablemente sean errores.
Las advertencias incluidas en -Wextra
tienden a marcar códigos comunes y legítimos. Pueden ser útiles para las revisiones de código (aunque los programas estilo pelusa encuentran que muchas más trampas son más flexibles), pero no los activaría para el desarrollo normal.
-Wfloat-equal
es una buena idea si los desarrolladores del proyecto no están familiarizados con el punto flotante, y una mala idea si lo están.
-Winit-self
es útil; Me pregunto por qué no está incluido -Wuninitialized
.
-Wpointer-arith
es útil si tiene un código mayormente portátil con el que no funciona -pedantic
.
-save-temps
,-Wshadow
y-fmudflap
fueron los mejores hallazgos que no conocía, gracias a todos.