#include <stdio.h>
#define MIN(x,y) (x)<(y)?(x):(y)
int main(){
int i=10,j=15;
printf("%d", 10*MIN(i,j));
}
MIN(i,j)的结果是10,那10*10为100,运行却是15?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- b1c 2021-11-22 16:38关注
宏定义会直接替换对应代码字段
你的代码会变成
#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)); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Groimp使用疑问
- ¥15 c++ 主窗口里面的菜单如何脱离主窗口
- ¥15 MDK–ARM里一直找不到调试器
- ¥15 oracle中sql查询问题
- ¥15 vue使用gojs3.0版本,在nodeDataArray中的iconSrc使用gif本地路径,展示出来后动画是静态的,不是动态的
- ¥100 代写个MATLAB代码,有偿
- ¥15 ansys electronics 2021 R1安装报错,错误代码2,如图
- ¥15 Dev-c++打字不出现中文,但出现日文
- ¥30 搭建面包板由NE555N和SN74LS90N组成的计时电路时出了问题
- ¥15 无源定位系统的时差估计误差标准差