Zawsze stosować -O
lub 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 -Werror
zasad, 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 -Wextra
zwykle 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-self
jest przydatny; Zastanawiam się, dlaczego nie ma tego w -Wuninitialized
.
-Wpointer-arith
jest przydatny, jeśli masz kod w większości przenośny, z którym nie działa -pedantic
.
-save-temps
,-Wshadow
i-fmudflap
były to największe znaleziska, o których nie wiedziałem, dzięki wszystkim.