#define MIN(x,y) (x)<(y)?(x):(y)
#include "stdio.h"
main()
{
int i,j,k;
i=10;
j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
MIN(x,y) (x)<(y)?(x):(y)这里是什么意思,怎么会输出15
答案:2 悬赏:60 手机版
解决时间 2021-12-29 22:21
- 提问者网友:謫仙
- 2021-12-29 00:49
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2022-01-22 05:57
用宏定义实现一个小的宏MIN(x,y),会输出x和y中小的那一个。
但要注意,预编译只是单纯的替换操作,而不能视为简单的函数调用。因此在k=10*MIN(i,j)语句中,编译器将该条语句替换为k=10*(i)<(j)?(i):(j),先执行10*i得到100,最后实际计算的是100<15?10:15,条件为假因此输出15。
但要注意,预编译只是单纯的替换操作,而不能视为简单的函数调用。因此在k=10*MIN(i,j)语句中,编译器将该条语句替换为k=10*(i)<(j)?(i):(j),先执行10*i得到100,最后实际计算的是100<15?10:15,条件为假因此输出15。
全部回答
- 1楼网友:毛毛
- 2022-01-22 07:30
额
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |