#define 函数的问题

上善若水_厚德载物 2010-10-16 12:14:43

#include <stdio.h>
#define M(a,b)(a) > (b) ? (a) : (b)

int x = 371,y = 269;void main()
{
int i = 10,j = 15;
printf("%d\n",M(i,j));
printf("%d\n",10*M(i,j));
}

第二个输出为什么是10,而不是150?
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢各位,明白了。结帖
getline 2010-10-16
  • 打赏
  • 举报
回复
#define 只是简单替换
10 * M(10, 15) = 10 * (10) > 15 为真就输出a=10了

#define M(a,b) ((a) > (b) ?(a):(b))
昵称很不好取 2010-10-16
  • 打赏
  • 举报
回复
10*M(i,j)展开以后是 10*(10)>(15)?(10):(15)
因为100>15,因此结果是(10),打印出10

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧