#include <stdio.h>
#define MAX(x,y) (x)>(y)?(x):(y)
void main(){
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d",t);
}
输出结果为7.
原因: 宏定义并非函数,只是单纯地语言替换
即 t = (a+b)>(c+d)?(a+b):(c+d)10
因此前者大则输出前者,后者大则输出后者10
#include <stdio.h>
#define MAX(x,y) (x)>(y)?(x):(y)
void main(){
int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10;
printf("%d",t);
}
输出结果为7.
原因: 宏定义并非函数,只是单纯地语言替换
即 t = (a+b)>(c+d)?(a+b):(c+d)10
因此前者大则输出前者,后者大则输出后者10