2009-07-03 42 views
36

Trên trình biên dịch microsoft, cảnh báo cụ thể có thể bị vô hiệu hóa bằng #pragma, mà không vô hiệu cảnh báo khác. Đây là một tính năng cực kỳ hữu ích nếu trình biên dịch cảnh báo về thứ gì đó "phải được thực hiện".tắt cảnh báo cụ thể trong gcc

GCC tại thời điểm này có tính năng tương tự không? Nó có vẻ như một tính năng đủ rõ ràng rằng không thể tưởng tượng của nó rằng nó sẽ không có tính năng này được nêu ra, nhưng thông tin cũ trên web cho thấy tính năng này không tồn tại.

Sử dụng GCC là gì?

Cụ thể, tôi muốn sử dụng các hằng số nhiều ký tự, như 'abc'. Những đánh giá này có hiệu quả như một số 256 cơ sở - một tính năng rất tiện dụng, nhưng nó gây ra một cảnh báo. Nó rất tiện dụng để chuyển đổi bốn chuỗi ký tự trong một câu lệnh case.

+3

Duplicates: http://stackoverflow.com/questions/487108/how-to-supress-specific-warnings-in-g http://stackoverflow.com/ câu hỏi/925179/select-remove-warning http://stackoverflow.com/questions/965093/selectively-disable-gcc-warnings-for-only-part-of-a-translation-unit –

Trả lời

33

Điều này có thể được thực hiện với gcc's diagnostic pragmas.

+0

Điều này sẽ hữu ích khi tôi nâng cấp đến một GCC mới hơn. Nó dường như là một tính năng mới hơn. –

24

Từ hướng dẫn gcc:

Many options have long names starting with -f or with -W---for example, 
    -fforce-mem, -fstrength-reduce, -Wformat and so on. Most of these have 
    both positive and negative forms; the negative form of -ffoo would be 
    -fno-foo. This manual documents only one of these two forms, whichever 
    one is not the default. 

Nhưng nếu bạn đang hỏi liệu có một disable cảnh báo nguồn cấp, Tôi không biết nếu tính năng tồn tại trong gcc.

11

-Wno-multichar:

Không cảnh báo nếu một hằng số multicharacter ('FOOF') được sử dụng. Thông thường, chúng chỉ ra lỗi đánh máy trong mã số của người dùng, vì chúng có giá trị được triển khai và không được sử dụng trong mã số di động .

More information.

7

Bên trong mã nguồn viết:

#pragma GCC diagnostic ignored "-Wno-multichar" 

// code with warnings but wont be displayed now... 
+0

Cũng tốt để lưu ý rằng chẩn đoán có thể được thiết lập cho các bit nhỏ của mã bằng cách sử dụng '#pragma GCC diagnostic' và' #pragma GCC diagnostic pop'. – Hector

Các vấn đề liên quan