当前位置: 代码迷 >> VC >> 非活动预加工器块是指什么意思,还有,为何是浅灰色显示呢
  详细解决方案

非活动预加工器块是指什么意思,还有,为何是浅灰色显示呢

热度:2983   发布时间:2013-02-25 00:00:00.0
非活动预处理器块是指什么意思,还有,为何是浅灰色显示呢?
非活动预处理器块是指什么意思,还有,为何是浅灰色显示呢?
C/C++ code
#ifndef _CONST_RETURN#ifdef  __cplusplus#define _CONST_RETURN  const#define _CRT_CONST_CORRECT_OVERLOADS#else#define _CONST_RETURN#endif#endif


我不明白,上面的代码,在vc2008的编辑器中,除首尾两行代码,其他都是浅灰色显示,这是为什么?

#ifndef _CONST_RETURN
  。。。这里的代码都是浅灰色的。
#endif

我不明白,这就是普通的预处理命令呀,为何会使中间的代码为灰色呢?
灰色表示什么,折叠后显示的是:非活动预处理器块

系统如何知道这些代码是非活动的呢?

------解决方案--------------------------------------------------------
#ifndef _CONST_RETURN
。。。这里的代码都是浅灰色的。
#endif

如果未定义_CONST_RETURN则编译以下代码块

灰色的就说明你的项目中已经定义了_CONST_RETURN,故以下代码不会被编译,所以是灰色的。

这有什么问题么?
------解决方案--------------------------------------------------------
_UNICODE 是系统默认宏,他的定义是在编译其中配置的。
ide没有办法跳转到这个地方,因为没有文件中显示定义这个宏,所以有这个提示。
如果你把这个宏放到一个头文件中去定义,就可以跳转过去了。
纠结起来应该算是ide的提示不够友好。

简单的说如下:
ide下面的跳转是这样的逻辑,先找到该类型的定义文件,然后打开改文件,在定位到类型定义的行。
出现你这种情况,是因为ide找不到这个文件(.h/.c/.cpp),因为你这个宏_UNICODE 是在工程文件中定义的。再纠结起来应该还算是ide的提示不够友好。

ide应该说“无法打开定义该宏的文件,此宏可能在项目工程文件中定义。”
------解决方案--------------------------------------------------------
“项目\属性\配置属性\常规\字符集”,可以修改字符集定义。或者直接“配置属性-C/C++-命令行”,有_UNICODE参数的就是
  相关解决方案