Zawsze stosować -Olub powyżej ( -O1, -O2,-Os , itd.). Na domyślnym poziomie optymalizacji gcc dąży do szybkości kompilacji i nie przeprowadza wystarczającej analizy, aby ostrzegać o takich rzeczach, jak zmienne zjednostkowane.
Rozważ ustalenie -Werrorzasad, ponieważ ostrzeżenia, które nie zatrzymują kompilacji, są zwykle ignorowane.
-Wall prawie włącza ostrzeżenia, które najprawdopodobniej są błędami.
Ostrzeżenia zawarte w programie -Wextrazwykle oznaczają typowy, legalny kod. Mogą być przydatne do recenzji kodu (chociaż programy typu lint mają dużo więcej pułapek jest bardziej elastycznych), ale nie włączałbym ich do normalnego programowania.
-Wfloat-equal to dobry pomysł, jeśli programiści projektu nie znają zmiennoprzecinkowych, a zły pomysł, jeśli tak jest.
-Winit-selfjest przydatny; Zastanawiam się, dlaczego nie ma tego w -Wuninitialized.
-Wpointer-arithjest przydatny, jeśli masz kod w większości przenośny, z którym nie działa -pedantic.
-save-temps,-Wshadowi-fmudflapbyły to największe znaleziska, o których nie wiedziałem, dzięki wszystkim.