我希望能够像这样使用宏参数:
#define D(cond,...) do{ \
#if cond \
#define YYY 1 \
#else \
#define YYY 0 \
} while(0)
这是可能的吗?
更新
也许当源码被预处理两次时:gcc -E source.c | gcc -xc -
下面的操作将会生效:
#define D(cond,...) #define YYY cond&DEBUG
#if YYY
#define D(...) printf( __VA_ARGS__ )
#else
#define D(...)
#endif