非活动预处理器块是指什么意思,还有,为何是浅灰色显示呢?
- 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参数的就是