代码示例
#if (COMPUTER_NUMBER == PRIMARY_COMPUTER)
if (platformType == NAV_BASESTATION) {
nav->once(cycleno);
controller->once(cycleno);
等。 #if下方的所有内容都显示为灰色。我有一个庞大的代码库,由许多这些类型的宏组成。代码有多个版本,具体取决于目标,由几个关键参数管理。尽管在项目设置中定义了宏,尽管我尝试将其设置在用于智能感知的代码文件中进行发现,并且尽管我重置了vs设置以启动新的智能感知扫描,但代码块显示为灰色且无法显示通过intellisense运行。我已下载了视觉辅助试用版,我正试图查看它是否适合。
我尝试将#define COMPUTER_NUMBER = PRIMARY_COMPUTER添加到上面粘贴的代码行之上,然后保存,关闭并重新打开vs以启动新的智能感知扫描,但似乎没有任何事情发生。我甚至可以在那之后对宏名称使用intellisense,然后去定义,这将我带到我将宏定义为该值的位置,但这是一个顽固的野兽,我们都知道。我应该尝试或澄清什么?
谢谢
答案 0 :(得分:3)
不是修复预处理器问题,但您可以简单地禁用灰显代码功能。取消选中
Tools | Options | Text Editor | C/C++ | Formatting | Colorize inactive code blocks in a different color
答案 1 :(得分:0)
我知道这已经老了,但我仍然遇到了问题。我有一个项目,其中定义了预处理器'BLUETOOTH',但源文件整个部分变灰了。它仍然按照应有的方式构建,但它很烦人,因为它很难阅读,并且#pragma区域都没有工作,所以我无法将其置于轮廓形式。
我能够解决这个问题的唯一方法是进入项目的属性,删除预处理器BLUETOOTH,点击apply,然后将其添加回来并点击apply。然后所有灰色的文字都恢复正常颜色。
由于这似乎是一个错误,我不知道该方法将如何解决我已经看到的其他人的问题,但这对我有用。
对我来说,一个更大的问题是intellisense不能在灰显的文本中工作(它表现为非活动状态),但编译正确地构建了灰色的代码。