2010-06-04 33 views
9

Intellisense trong Visual Studio 2010 diễn giải mã C như C++ và đánh dấu lỗi nơi họ không tồn tại, như trong:Visual Studio 2010 Intellisense squiggles cho mã C

struct my_struct *s = malloc(sizeof *s); 

có giá trị C, nhưng không hợp lệ C++ .

Có cách nào để sửa lỗi này không?

+1

Đây có phải là tệp .c không? – OregonGhost

+0

@OregonGhost Có. – Artefacto

Trả lời

11

Nó là một lỗi đã biết từ ít nhất là MSVC 2005. Thật không may nó đã trở thành một vấn đề lớn hơn trong năm 2010 kể từ khi VC sử dụng Intellisense để đánh dấu lỗi.

Xem this discussion at the MSDN forums để biết thêm thông tin. Tuyên bố sau đây đã hết hạn nhưng tôi khuyên bạn nên thêm giọng nói của mình vào cuộc trò chuyện với hy vọng rằng họ có thể giải quyết vấn đề này một ngày nào đó.

Tôi chỉ đang theo dõi và cho bạn biết rằng chúng tôi sẽ không khắc phục lỗi này trong bản phát hành/cập nhật VS tiếp theo.

Nếu lỗi này ảnh hưởng nghiêm trọng đến năng suất hàng ngày của bạn, bạn có thể mở/kích hoạt lỗi này bằng cách kết nối lại.

Lưu ý rằng bạn có thể tắt báo cáo lỗi của Intellisense trong Công cụ → Tùy chọn ... → Trình soạn thảo văn bản → C/C++ → Nâng cao → Intellisense → Tắt báo cáo lỗi → True. Tất nhiên, điều này thực sự stinks nếu bạn đang ở trong một giải pháp hỗn hợp hoặc chỉ đơn giản là muốn bao gồm một tiêu đề extern "C" mà ném lỗi Intellisense.

+0

Điều gì về việc đánh dấu toàn bộ mã trong khối "C" bên ngoài? Bao gồm các tệp tiêu đề. –

+0

@Chris: Không quan trọng. Intellisense không quan tâm, và di chuyển thẳng qua nó ... đó là một vấn đề lớn nếu bạn có 'extern" C "' tiêu đề với C + + "lỗi." –

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