“ #ifdef”在宏内 [英] "#ifdef" inside a macro
本文介绍了“ #ifdef”在宏内的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可能重复:
#ifdef in #define
如何使用字符#成功在宏内?当我做这样的事情时,它会尖叫:
How do I use the character "#" successfully inside a Macro? It screams when I do something like that:
#define DO(WHAT) \
#ifdef DEBUG \
MyObj->WHAT() \
#endif \
推荐答案
您不能那样做。您必须执行以下操作:
You can't do that. You have to do something like this:
#ifdef DEBUG
#define DO(WHAT) MyObj->WHAT()
#else
#define DO(WHAT) do { } while(0)
#endif
do {} while(0)
避免空语句。例如,请参见此问题
The do { } while(0)
avoids empty statements. See this question, for example.
这篇关于“ #ifdef”在宏内的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文