c巴拉巴拉 2024-04-12 08:37 采纳率: 87.5%
浏览 3
已结题

宏定义中的运算符优先级该如何计算

设有宏定义如下:

define MIN ( x , y )__( x )>( y )?( x ):( y )

define T ( x , y , r ) x * r * y /4

则执行以下语句后,s1的值为【1】,s2的值为【2】。
int a =1, b =3, c =5,s1,s2;
s1= MIN ( a = b , b - a );
s2= T ( a ++, a ++ b , a + b + c );
关于s2我的思路是:宏直接替换
替换后的表达式:a++a++b
a+b+c/4
因为在s1中a被赋值3,所以此刻a为3。
因为++优先级高所以先算,
所以数值替换后的表达式为:
344*4+4+5/4,再先算乘除再算加减,得197
但是有人说是28,devc++跑出来是35。所以表达式s2的运算顺序是怎么样的,怎么就能算出28/35呢

  • 写回答

4条回答 默认 最新

  • c巴拉巴拉 2024-04-14 15:51
    关注

    没错,只是没注意顺序xry

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月22日
  • 已采纳回答 4月14日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)
  • ¥15 开发一个类似百度网盘的软件,在主页 文件列表点击进入文件夹,在文件夹里面还有文件夹,代码该怎么写?
  • ¥30 使用matlab将观测点聚合成多条目标轨迹
  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的