Visual Studio 2010中的Intellisense将C代码解释为C++,并将错误标记为不存在,如:
struct my_struct *s = malloc(sizeof *s);
这是有效的C,但不是有效的C++.
有没有什么办法解决这一问题?
这至少是自MSVC 2005以来的一个已知错误.不幸的是,它已成为2010年的一个更大的问题,因为VC现在使用Intellisense来标记错误.
有关详细信息,请参阅MSDN论坛中的此讨论.以下陈述令人沮丧,但我强烈建议您将您的声音添加到对话中,希望有一天他们可以解决问题.
我只是跟进并告诉您我们不会在下一次VS发布/更新中修复此错误.
如果此错误严重影响您的日常生产力,您可以再次连接打开/激活此错误.
请注意,您可以在工具→选项...→文本编辑器→C/C++→高级→智能感知→禁用错误报告→True中禁用智能感知的错误报告.当然,如果您处于混合解决方案中,或者只是想要包含extern "C"
引发Intellisense错误的标头,这确实很糟糕.