尝试创建一个宏,可以在定义DEBUG时用于打印调试消息,如下面的伪代码:
#define DEBUG 1
#define debug_print(args ...) if (DEBUG) fprintf(stderr, args)
Run Code Online (Sandbox Code Playgroud)
如何用宏实现这一目标?
我想编写一个宏,根据其参数的布尔值吐出代码.所以说DEF_CONST(true)应该扩展到const,并且DEF_CONST(false)应该扩展为无.
显然,以下方法不起作用,因为我们不能在#defines中使用另一个预处理器:
#define DEF_CONST(b_const) \
#if (b_const) \
const \
#endif
Run Code Online (Sandbox Code Playgroud)