Verwenden Sie immer -Ooder über ( -O1, -O2, -Os, etc.). Auf der Standardoptimierungsstufe setzt gcc auf Kompilierungsgeschwindigkeit und führt nicht genügend Analysen durch, um vor Dingen wie einheitlichen Variablen zu warnen.
Erwägen Sie, -WerrorRichtlinien zu erstellen, da Warnungen, die die Kompilierung nicht stoppen, häufig ignoriert werden.
-Wall Aktiviert so ziemlich die Warnungen, bei denen es sich sehr wahrscheinlich um Fehler handelt.
In enthaltene Warnungen kennzeichnen in der -WextraRegel allgemeinen, legitimen Code. Sie können für Codeüberprüfungen nützlich sein (obwohl Programme im Fusselstil viel mehr Fallstricke flexibler finden), aber ich würde sie für die normale Entwicklung nicht aktivieren.
-Wfloat-equal ist eine gute Idee, wenn die Entwickler des Projekts mit Gleitkommazahlen nicht vertraut sind, und eine schlechte Idee, wenn sie es sind.
-Winit-selfist nützlich; Ich frage mich, warum es nicht in enthalten ist -Wuninitialized.
-Wpointer-arithist nützlich, wenn Sie meistens portablen Code haben, der nicht funktioniert -pedantic.
-save-temps,-Wshadowund-fmudflapwaren die größten Funde, von denen ich dank allem nichts wusste.