【发布时间】:2014-05-22 18:54:43
【问题描述】:
我想定义一个带有可变数量参数的宏,它打印每个给定参数的名称和值。
例如:
MACRO(x) 将打印 x = 123
MACRO(x,y) 将打印 x,y = 123,666
一个更好的宏会更具可读性
BETTER_MACRO(x,y) 将打印 x = 123, y = 666
对于一个变量,我可以使用:
#define MACRO(...) cout << #__VA_ARGS__ << " = " << __VA_ARGS__ << endl;
更多,它不起作用。
通过这种方式,我想到了一些辅助问题。
1) 如何获取给宏的变量个数? 2) 如何访问每个参数?
天真地猜测,我们可以回答这两个问题。
然后我们希望通过以下方式定义宏。
#define BETTER_MACRO(...) {for (int i=0;i<=nb_variables;i++) {cout << #var[i] << var[i];}}
【问题讨论】:
标签: c++ c-preprocessor variadic-macros