#include <stdio.h>
#define MIN(x,y) (x)<(y)?(x):(y)
int main(){
int i=10,j=15;
printf("%d", 10*MIN(i,j));
}
宏定义会直接替换对应代码字段
你的代码会变成
#include <stdio.h>
#define MIN(x,y) (x)<(y)?(x):(y)
int main(){
int i=10,j=15;
printf("%d", 10*(i)<(j)?(i):(j));
}
宏定义不是函数,你把宏定义和函数搞混了
函数会先执行,然后返回值,把值继续参与运算
而宏定义就是简单替换字符串