2011-01-20 62 views
10

Sau đây là một phiên bản đơn giản của một mô hình đôi khi tôi thấy trong mã sinh viên của tôi:Tôi có thể xử lý cảnh báo cụ thể dưới dạng lỗi không?

bool foobar(int a, int b) 
{ 
    if (a < b) return true; 
} 

Mã thực sự là phức tạp hơn, tất nhiên. Visual Studio báo cáo cảnh báo C4715 (không phải tất cả các đường dẫn điều khiển đều trả lại giá trị) và tôi muốn xử lý tất cả cảnh báo C4715 là lỗi. Điều đó có thể không?

+4

Chắc chắn bạn chỉ nên xử lý tất cả các cảnh báo dưới dạng lỗi. :) – GManNickG

+0

@GMan: Mặc dù trong trường hợp chung tôi đồng ý. Đôi khi cần thiết để có thể có những thứ cụ thể. –

Trả lời

34

Điều này cần thực hiện thủ thuật: #pragma warning (error: 4715).
Hoặc tùy chọn dòng lệnh /we4715 (xem /w, /W0, /W1, /W2, /W3, /W4, /w1, /w2, /w3, /w4, /Wall, /wd, /we, /wo, /Wv, /WX (Warning Level) (lịch sự của Tom Sigerdas)).

+0

Liệu 'pragma' có cần trong tất cả các tệp để nó đếm hay bất kỳ tệp nào trong dự án không? Tài liệu – TankorSmash

+2

: [/ w,/Wn,/WX,/Tường,/wln,/wdn,/wen,/won (Cấp cảnh báo)] (https://msdn.microsoft.com/en-us/library/thxezb7y .aspx) –

+0

@TomSirgedas Cảm ơn bạn đã liên kết tài liệu. –

2

Đặt mức cảnh báo trình biên dịch thành cấp 4 (trong Visual Studio) và nó sẽ xử lý tất cả cảnh báo là lỗi. Thực hành tốt để sinh viên của bạn biên dịch mã của họ mà không có cảnh báo và không có lỗi nào :)

Ngoài ra, hãy bật tùy chọn trình biên dịch/WX.

+2

Không, không. Không, trừ khi bạn nói với nó. Đó là một thực hành tốt để thiết lập cả hai, nhưng thiết lập để cấp 4 là không đủ để làm cho nó lỗi trên một cảnh báo. –

+0

Bạn cũng cần '/ WX' (xử lý cảnh báo là lỗi). – bobbogo

+0

Tôi quên đề cập đến tùy chọn/WX. Đã chỉnh sửa để sửa. –

1

Vâng,/we4715 làm việc cho tôi. Trong Visual Studio 2013 anyway, nó là trong giao diện người dùng dưới Cài đặt dự án -> Cấu hình Properties -> C/C++ -> Nâng cao -> Điều trị cảnh báo cụ thể là lỗi. Thêm "4715". Vâng, điều đó thật điên rồ, họ đang nghĩ gì về tiêu chuẩn C++? Có thể một số mã di sản (xấu) yêu cầu nó. Ít nhất có một sửa chữa.

Documents: http://msdn.microsoft.com/en-us/library/thxezb7y.aspx

Và vâng, trang liệt kê tài sản UI sai cho VS2013. Bởi vì MSDN là AWESOME!

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