<分区>
我不明白为什么这个在函数调用中使用的宏不起作用。
#define MAX 255;
printf("max value %d", MAX);
但是这是
#define MAX 255;
int m = MAX;
printf("max value %d", m);
预处理器不是在替换之前的值吗 编译。他为什么提示?
<分区>
我不明白为什么这个在函数调用中使用的宏不起作用。
#define MAX 255;
printf("max value %d", MAX);
但是这是
#define MAX 255;
int m = MAX;
printf("max value %d", m);
预处理器不是在替换之前的值吗 编译。他为什么提示?
最佳答案
问题是分号 ;
。删除它:
#define MAX 255
否则两个代码示例展开如下:
printf("max value %d", 255;);
和
int m = 255;;
printf("max value %d", m);
在第二种情况下,它会导致无害的空语句。在第一个程序中,程序格式错误。
请记住宏定义不是语句。它们是预处理器的指令,指示如何进行 token 替换。
关于c - 如何在函数调用中使用宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41935626/