Luôn luôn sử dụng -O
hoặ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 -Werror
chí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 -Wextra
xu 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-self
là hữu ích; Tôi tự hỏi tại sao nó không được bao gồm trong -Wuninitialized
.
-Wpointer-arith
là hữu ích nếu bạn có mã di động chủ yếu không hoạt động -pedantic
.
-save-temps
,-Wshadow
và-fmudflap
là những phát hiện vĩ đại nhất mà tôi không biết, cảm ơn tất cả.