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