如何在Visual Studio(2010)中获得C(而不是C++)语法高亮?

Jim*_*mmy 7 c visual-studio-2010 visual-studio

我和朋友一起在C做了一些小练习,并且我一直习惯使用较新语言的关键词(例如bool,new).我花了一段时间才意识到这是问题因为VS一直把它们强调为关键词,即使它们不在C中.

我确保我的所有文件都是*.c,并且我将项目属性设置为C编译.但是,除了C关键字之外,编辑器总是为C++关键字添加语法highlightint.有没有办法告诉Visual Studio我只想要普通的C?

如果重要,请使用VS2010.

lib*_*rik 5

你不能. 这是Visual Studio中的已知错误. 用于Visual Studio中语法着色的"Intellisense"机制基于Microsoft购买的EDG C++编译器,因为它们的Visual C/C++编译器不适合处理不完整的动态分析所需的增量解析码.而EDG编译器只是C++.

您可以通过创建一个编译为C的foo.c文件来查看此示例.然后将以下行添加到文件中:

 #ifdef __cplusplus
 #error C++ is what I am
 #else
 #error A bunch of C code!
 #endif
Run Code Online (Sandbox Code Playgroud)

编译程序时,您将看到错误消息"一堆C代码!" 但是,当您查看Visual Studio编辑器窗口时,C端将变灰并标记为非活动状态,并且只有C++端将被着色!这是因为基于EDG C++编译器的Intellisense语法colorer认为一切都是C++.