【问题标题】:How to define variables via macros如何通过宏定义变量
【发布时间】:2014-01-03 04:58:30
【问题描述】:

我想定义声明和初始化变量的宏。更准确地说,我希望将宏 MYVARS(x,y) 替换为

int myvar=x; 
int myvarr=y;

我写

#define MYVARS(x,y) int myvar=x;##\n##int myvarr=y;

但经过预处理后,我看到 MY_VAR(50,60) 将被替换为 int myvar=50\ nint myvarr=60;。如何解决这个问题?

【问题讨论】:

    标签: c macros variable-declaration


    【解决方案1】:

    没有必要在不同的行上声明变量。完全放弃\n 并执行以下操作:

    #define MYVARS(x,y) int myvar=x; int myvarr=y;
    

    或者,甚至更好:

    #define MYVARS(x,y) int myvar=x, myvarr=y;
    

    【讨论】:

    • 谢谢!但是有没有办法用行分隔符定义宏?
    【解决方案2】:

    你可以使用::#define MYVARS(x,y) int myvar=x,myvarr=y;

    【讨论】:

      【解决方案3】:

      你也可以试试这个

      #define MYVARS(x,y) int myvar=x;\
                          int myvarr=y;
      

      【讨论】:

        猜你喜欢
        • 2011-10-20
        • 1970-01-01
        • 1970-01-01
        • 2019-04-05
        • 1970-01-01
        • 2021-09-25
        • 2012-02-13
        • 2018-07-28
        • 1970-01-01
        相关资源
        最近更新 更多