如何将函数定义为 #define Max(a,b)(a>b?a:b)

问题描述 投票:0回答:1

它如何将 5 显示为输出。

   #include<stdio.h>
    #define max(a,b)(a>b?a:b)
    int main()
    {
     int i=2,j=3,k;
     k=max(++i,++j);
     printf("%d",k);
    }
function macros operator-keyword ternary
1个回答
0
投票
 define max(a,b)(a>b?a:b)

在 max 函数中,我们没有发送 (2,3),而是发送 ++i(2) 和 ++j(3)。这就是为什么当它像

++a>++b?++a:++b
那样进行比较时。由于三元运算符得到 ++3,然后将其增加 1,因此它变成了 4。

希望你能明白。

© www.soinside.com 2019 - 2024. All rights reserved.