我使用VS 2005作为我的IDE。我的大多数源代码都使用预处理器#ifdef。控制#ifdef的所有宏定义都存在于头文件中。 Visual Studio在#ifdef grey'ed下显示代码。虽然定义宏的头文件包含在源文件中。这很烦人,因为visual studio也不会为它看不到的代码创建符号映射。因此,为了寻找符号的定义,我需要手动去检查它。我已经添加了头文件,其中宏定义存在于项目中。我的include目录也包含此文件的位置。有人可以告诉我为什么VS不会识别宏定义?
E.g。
File source.c
#include "defines.h"
#ifdef MY_DEFINE
int my_global = 0;
void foo(void)
{
printf("I am here");
}
#endif
File defines.h
#define MY_DEFINE
VS会将#ifdef下的所有代码显示为灰色。如果我想从其他文件中检查my_global的定义,我就不能。