我是编程新手,希望有人可以帮我解决这个问题:
为什么要输出:5。
以下是代码段:
#include <stdio.h>
#define max 5;
int main(){
int i=0;
i = max+1;
printf("\n%d",i);
return 0;
}
答案 0 :(得分:14)
因为宏有一个分号。代码相当于:
i = 5; + 1;
从宏中删除分号。
答案 1 :(得分:5)
关键点是
#define max 5;
当被预处理器替换时,这将成为
i = 5; +1;
将5分配给变量i
(表达式+1;
无效)。
你需要写
#define max 5
答案 2 :(得分:2)
因为在宏定义x =
之后你有一个分号