给出以下C源代码
#ifdef FOO
int bar = 1;
#endif
#if FOO == 0
int x = 0;
#elif FOO == 1
int x = 1;
#elif FOO == 2
int x = 2;
#endif
我可以预处理源代码(例如使用unifdef / coan),好像FOO
未定义,完全定义或定义为特定值(coan -DFOO=1 ...
会将代码重写为{ {1}})。
但是,对于我想要预处理的一些变量(例如int bar = 1; int x = 1;
)我不知道确切的值,但我知道要过滤掉哪些值。
理想情况下,我可以运行_MSC_VER
或coan -DFOO!=0
来删除不匹配的部分,但保留尚未评估的coan -DFOO>0
。
是否有任何预处理器可以处理更高级的约束?