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

时间:2011-04-13 07:34:43

标签: c visual-studio visual-studio-2010

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

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

如果重要,请使用VS2010。

2 个答案:

答案 0 :(得分:6)

你做不到。 This is a known bug in Visual Studio.用于Visual Studio中语法着色的“Intellisense”机制基于Microsoft购买的EDG C ++编译器,因为它们的Visual C / C ++编译器非常适合处理on-th所需的增量解析。 - 不完整代码的分析。 EDG编译器只是C ++。

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

 #ifdef __cplusplus
 #error C++ is what I am
 #else
 #error A bunch of C code!
 #endif

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

答案 1 :(得分:0)

考虑到C(C99标准版)采用了一些C ++特性,例如C ++风格的注释(//)或布尔(bool)数据类型。