以下代码不展开布尔表达式,另见https://godbolt.org/z/YqbazT3eo:
#define EXPAND(x) x
#define SWITCH false
EXPAND(SWITCH || defined(_DEBUG))
我该如何正确地做才能做到
#define FLAG EXPAND(SWITCH || defined(_DEBUG))
(或类似)和
FLAG
不会依赖于以后对 SWITCH
的更改?
不会依赖以后的SWITCH改动吗?FLAG
唯一的方法是这样:
#if SWITCH || defined(_DEBUG)
#define FLAG 1
#else
#define FLAG 0
#endif