1

可能重复:
C 中的宏定义错误?

我是编程新手,希望有人可以帮助我:

为什么它给出输出:5。
这是代码片段:

#include <stdio.h>
#define max 5;

int main(){
int i=0;
i = max+1;
printf("\n%d",i);
return 0;
}
4

3 回答 3

14

因为宏有分号。代码相当于:

i = 5; + 1;

从宏中删除分号。

于 2012-11-16T22:36:06.330 回答
5

关键点是

#define max 5;

当被预处理器替换时,这将变为

i = 5; +1;

它将 5 分配给变量i(表达式+1;无效)。

你需要写

#define max 5
于 2012-11-16T22:37:09.830 回答
2

因为你的宏定义后有一个分号 x=

于 2012-11-16T22:37:44.927 回答