【发布时间】:2014-07-15 14:53:15
【问题描述】:
我想知道是否有一种方法可以将#define 和#ifndef 宏结合起来..
这意味着我想在#define 宏中使用#ifndef 宏..
由于有点难以解释,这是我想做的一个例子:
#define RUN_IF_DEBUG \
#ifndef DEBUG_MODE \
; // do nothing \
#else \
cout << "Run!" << endl; \
#endif
int main() {
RUN_IF_DEBUG
}
所以我希望 RUN_IF_DEBUG 宏仅在定义了 DEBUG_MODE 时运行...
有没有办法做到这一点?
【问题讨论】:
-
您可以在行尾不带“\”的情况下进行嵌套定义
-
@cerkiewny,你不能做嵌套定义期间(至少没有黑客),因为你不能在宏中使用其他指令保存
_Pragma。