Bis*_*der 1 c macros c-preprocessor
可能重复:
C中的宏定义错误?
我是编程新手,希望有人可以帮助我:
为什么要输出:5.
这是代码片段:
#include <stdio.h>
#define max 5;
int main(){
int i=0;
i = max+1;
printf("\n%d",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
hmj*_*mjd 14
因为宏有一个分号.代码相当于:
i = 5; + 1;
Run Code Online (Sandbox Code Playgroud)
从宏中删除分号.
小智 5
关键的一点是
#define max 5;
Run Code Online (Sandbox Code Playgroud)
当被预处理器替换时,这将成为
i = 5; +1;
Run Code Online (Sandbox Code Playgroud)
它为变量赋值5 i(表达式+1;没有效果).
你需要写
#define max 5
Run Code Online (Sandbox Code Playgroud)