IDEとしてVS2005を使用しています。私のソースコードのほとんどはプリプロセッサ#ifdefを使用しています。#ifdefを制御するすべてのマクロ定義は、ヘッダーファイルに存在します。Visual Studioは、#ifdefの下のコードを灰色で表示します。マクロが定義されているヘッダーファイルはソースファイルに含まれていますが。Visual Studioは、表示されないコードのシンボルマッピングも作成しないため、これは厄介です。したがって、シンボルの定義を探すには、手動で行って確認する必要があります。マクロ定義が存在するヘッダーファイルをプロジェクトに追加しました。また、私のインクルードディレクトリにはこのファイルの場所が含まれています。VSがマクロ定義を認識しない理由を誰かに教えてもらえますか?
例えば
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の定義を確認したい場合は確認できません。