ber*_*ers 1 c++ macros preprocessor expansion
以下代码不扩展布尔表达式,另请参见https://godbolt.org/z/YqbazT3eo:
#define EXPAND(x) x
#define SWITCH false
EXPAND(SWITCH || defined(_DEBUG))
Run Code Online (Sandbox Code Playgroud)
我该如何正确地做才能做到
#define FLAG EXPAND(SWITCH || defined(_DEBUG))
Run Code Online (Sandbox Code Playgroud)
(或类似)并且FLAG不会依赖于以后的更改SWITCH?
FLAG以后会不会依赖SWITCH的修改?
唯一的办法是这样的:
#if SWITCH || defined(_DEBUG)
#define FLAG 1
#else
#define FLAG 0
#endif
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |