我想定义一个带有可变数量参数的宏,它打印每个给定参数的名称和值。
例如 :
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];}}