努力追求可能 2021-11-22 16:21 采纳率: 66.7%
浏览 18
已结题

MIN(i,j)的结果是10,那10*10为100,运行却是15?

#include <stdio.h>
#define MIN(x,y) (x)<(y)?(x):(y)
int main(){
int i=10,j=15;
printf("%d", 10*MIN(i,j));
}
  • 写回答

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条)

报告相同问题?

问题事件

  • 系统已结题 11月30日
  • 已采纳回答 11月22日
  • 创建了问题 11月22日

悬赏问题

  • ¥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 无源定位系统的时差估计误差标准差