Luôn luôn sử dụng -Ohoặc cao hơn ( -O1, -O2,-Os , vv). Ở mức tối ưu hóa mặc định, gcc dành cho tốc độ biên dịch và không thực hiện đủ phân tích để cảnh báo về những thứ như các biến đơn vị.
Xem xét việc đưa ra -Werrorchính sách, vì các cảnh báo không dừng việc biên dịch có xu hướng bị bỏ qua.
-Wall khá nhiều bật các cảnh báo rất có thể là lỗi.
Cảnh báo bao gồm trong -Wextraxu hướng gắn cờ mã phổ biến, hợp pháp. Chúng có thể hữu ích cho việc đánh giá mã (mặc dù các chương trình kiểu lint tìm thấy nhiều cạm bẫy linh hoạt hơn), nhưng tôi sẽ không bật chúng để phát triển bình thường.
-Wfloat-equal là một ý tưởng tốt nếu các nhà phát triển trong dự án không quen thuộc với dấu phẩy động và là một ý tưởng tồi nếu có.
-Winit-selflà hữu ích; Tôi tự hỏi tại sao nó không được bao gồm trong -Wuninitialized.
-Wpointer-arithlà hữu ích nếu bạn có mã di động chủ yếu không hoạt động -pedantic.
-save-temps,-Wshadowvà-fmudflaplà những phát hiện vĩ đại nhất mà tôi không biết, cảm ơn tất cả.