Вы должны сделать это наоборот (определить макрос для каждого условия # if / # ifdef / # else (если вы вкладываете, вы должны поместить определение в каждую ветвь). Вы, вероятно, должны определять его в каждойветвь или он не сможет скомпилироваться, когда вы попытаетесь отрегулировать редко настраиваемый флаг.флаг включен, или ваша программа может работать неправильно.
#define N(x)
#include < iostream >
#ifdef (flag)
#define MY_CHK_DEF(flag)
std::cout<<#flag<<std::endl;
#else
#define MY_CHK_DEF(flag) \
std::cout<<#flag<<" ,flag not define"<<std::endl;
#endif
int main()
{
MY_CHK_DEF(FLAG_1);
MY_CHK_DEF(FLAG_2);
MY_CHK_DEF(FLAG_3);
...
}