首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

非活动预处理器块是指什么意思,还有,为何是浅灰色显示呢?该如何处理

2013-01-27 
非活动预处理器块是指什么意思,还有,为何是浅灰色显示呢?非活动预处理器块是指什么意思,还有,为何是浅灰色

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


#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参数的就是

热点排行