【问题标题】:How to use a macro in a function call? [closed]如何在函数调用中使用宏? [关闭]
【发布时间】:2017-06-15 14:15:00
【问题描述】:

我不明白为什么在函数调用中使用的这个宏不起作用。

#define MAX 255;
printf("max value %d", MAX);

但这是

#define MAX 255;
int m = MAX;
printf("max value %d", m);

预处理器不是替换了之前的值吗 编译。他为什么抱怨?

【问题讨论】:

    标签: c function macros


    【解决方案1】:

    问题是分号;。删除它:

    #define MAX 255
    

    否则两个代码示例展开如下:

    printf("max value %d", 255;);
    

    int m = 255;;
    printf("max value %d", m);
    

    在第二种情况下,它会导致一个无害的空语句。首先,程序格式不正确。

    请记住,宏定义是不是语句。它们是预处理器的指令,指示如何进行标记替换。

    【讨论】:

      【解决方案2】:
      printf("max value %d", 255;);
      

      语法无效。

      int m = 255;;
      printf("max value %d", m);
      

      是合法的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-17
        • 2011-01-09
        • 1970-01-01
        相关资源
        最近更新 更多