c语言 宏定义 #define max(a,b) a>b?a:b printf("%d",max(max(2,1),3); 为什么输出的是2
展开全部
#define max((a),(b)) ((a)>(b)?(a):(b))
这样就好了
这样就好了
更多追问追答
追问
不加括号,为-2。能具体解释下吗
追答
宏定义的函数在编译时将定义的值在标识出展开
printf("%d",max(max(2,1),3)); 实际上就是
printf("%d",2>1?2:1>3?1:3); 输出当然是2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询