我必须编写一个宏函数,它接受多个参数并打印它们。 e.g,
int main(){
int x,y;
x=5;
y=9;
cout<<"value of x is::"<<x<<" "<<"value of y is:::"<<y<<endl;
return 0;
}
我想写一个宏,它将x和y作为参数并打印如上所述。 比如 debug_print(x,y)。
答案 0 :(得分:0)
如果您想要可变参数数量,您想要查看的内容是variadic macros。使用它们,您可以像这样定义一个宏
#define debug_print(...) <your code here>
然后,您可以在<your code here>
部分中使用__VA_ARGS__
。
如果您只想使用两个参数,可以像这样定义宏:
#define debug_print(x, y) (std::cout << "value of x is::" << x << " " << "value of y is:::" << y << std::endl)
并像
一样使用它int x = 5;
int y = 9;
debug_print(x, y);
正如其他人已经说过的那样,除非你绝对必须,否则不要使用这个宏!例如。您没有看到debug_print
需要iostream
才能正常工作,并且您看不到哪些类型可以传入其中。