为啥 Visual Studio 2008 在 C++ 代码中突出显示 internal 作为关键字?
Posted
技术标签:
【中文标题】为啥 Visual Studio 2008 在 C++ 代码中突出显示 internal 作为关键字?【英文标题】:Why does Visual Studio 2008 highlight internal as a keyword in C++ code?为什么 Visual Studio 2008 在 C++ 代码中突出显示 internal 作为关键字? 【发布时间】:2009-08-24 07:28:13 【问题描述】:我正在将 VC++7 代码库移植到 VC++9。令人惊讶的是,Visual Studio 2008 将 internal 突出显示为 C++ 代码中的关键字,但看起来它并没有真正被这样对待。
这是什么 - VS 中的一个错误,我尚未找到的环境设置,或者表明我将不再被允许在某些即将发布的版本中使用 internal 作为常规标识符?在这种情况下,我最好的做法是什么?
【问题讨论】:
【参考方案1】:我不确定,但我认为内部说明符可用于 C++/CLI 项目。因此,由于非 C++/CLI 项目和 C++/CLI 项目之间只有一个项目设置的差异,因此,它可能是因为这个原因而被突出显示的。
[编辑] 刚刚检查,内部 IS 是 C++/CLI 中的一个关键字,并生成类似于 C# 项目生成的 IL。所以,我最初的想法似乎是正确的。它似乎是来自 Microsoft 的适用于所有 C++ 风格的解析器。
【讨论】:
我认为它不是“一个适用于所有 C 风格的解析器”,而是在用于 .NET 的 C++ 中引入了一些旧 C++ 中没有的 .NET 机制,并且出于显而易见的原因,它们与 C# 语义相同。【参考方案2】:忽略它。 “问题”只是并非 Visual Studio 的所有部分都能正确区分 C++ 和 C++/CLI。因此,即使在纯原生 C++ 中,某些 C++/CLI 关键字也会突出显示。 (array
是另一个)。
这只影响语法高亮,而不影响实际的编译器。
因此,避免使用这些词的唯一原因是,如果您 1) 发现错误的语法突出显示太烦人,或者 2) 计划将您的应用程序移植到 C++/CLI。
【讨论】:
【参考方案3】:问题在于用于突出显示的解析器不是真正的 C++ 解析器之一。 “之一”,因为 VC++、C++/Za 和 C++/CLI 是具有不同解析器的三种方言。 VS 漂亮的打印机使用了一个常见的解析器,但它并不总是正确的。例如。它有一组关键字,因此它总是假定“内部”是一个关键字。
【讨论】:
以上是关于为啥 Visual Studio 2008 在 C++ 代码中突出显示 internal 作为关键字?的主要内容,如果未能解决你的问题,请参考以下文章
visual studio 2008的ISO文件有3.70GB,为啥有这么大?
为啥使用microsoft visual studio2008时反应缓慢?????????????? 急!!!!!!!!!!
为啥我在visual studio 2008 VC++中运行一个Win32控制台应用程序后,弹出一个“没有找到MSVCP90D.dll”?
为啥 Visual Studio 2008 在 C++ 代码中突出显示 internal 作为关键字?