Tôi có một phần mã có thể được tóm tắt như sau;Tại sao mã sau không tạo cảnh báo trong MSVC
void MyFunc()
{
int x;
'
'
x;
'
'
}
Tôi đã nghĩ rằng chỉ đơn giản là tham chiếu một biến, mà không sửa đổi nó hoặc sử dụng giá trị của nó trong anyway sẽ tạo ra một cảnh báo. Trong VS2003 nó không phải, và tôi cần lint để nhặt nó lên.
Tôi nhận ra nó không ảnh hưởng đến thực thi, nhưng vì nó là một đoạn mã không làm gì cả, và lập trình viên không có ý định làm gì đó, tại sao nó không bị gắn cờ?
Tương tự như vậy, bạn mong đợi x = x là cảnh báo?
Chỉnh sửa: Câu hỏi đã sửa đổi, vì đây là một ứng cử viên tốt cho cảnh báo nhưng không phải là lỗi. Trả lời cho thấy điều này được xử lý tốt hơn với các trình biên dịch khác. Sẽ thử VS2008 sau và đăng kết quả.
tại sao nó sẽ cung cấp cho một lỗi, cú pháp là chính xác. – Grumpy
Có lẽ không phải là lỗi, nhưng chắc chắn là một cảnh báo. nếu (x = y) cũng có cú pháp chính xác, nhưng nói chung không phải là ý tưởng của lập trình viên.Tôi muốn nói bất kỳ mã nào có khả năng không phải lập trình viên dự định sẽ tạo ra cảnh báo, và tôi không thể thấy rằng thêm câu lệnh vào mã không có ý định của hầu hết các lập trình viên nhiều lần. –