如何编写一个有多个参数的宏函数

时间:2018-03-21 14:43:53

标签: c++

我必须编写一个宏函数,它接受多个参数并打印它们。 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)。

1 个答案:

答案 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才能正常工作,并且您看不到哪些类型可以传入其中。