我正在和朋友一起用 C 语言做一些小练习,出于习惯,我一直使用较新语言的关键字(例如 bool、new)。我花了一段时间才意识到这是问题所在,因为 VS 不断将它们突出显示为关键字,即使它们不在 C 中。
我确保所有文件都是 *.c,并将项目属性设置为编译为 C。但是,除了 C 关键字之外,编辑器始终为 C++ 关键字添加语法高亮显示。有什么方法可以告诉 Visual Studio 我只想要纯 C 语言吗?
如果有必要的话,使用 VS2010。
你不能。这是 Visual Studio 中的一个已知错误。 https://connect.microsoft.com/VisualStudio/feedback/details/516920/predefine-macro-problemsVisual 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
当您编译程序时,您将看到错误消息“一堆 C 代码!”但当你查看 Visual Studio 编辑器窗口时,C 端将变灰并标记为不活动,只有 C++ 端是彩色的!那是因为基于 EDG C++ 编译器的 Intellisense 语法着色器认为一切都是 C++。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)