JeffQury 2023-12-30 23:17 采纳率: 93.3%
浏览 7
已结题

define宏定义计算为什么等于9


#define SQ(x,y)  (x)*(x)+(y)*(y)
int main()
{
    int s;
    s = SQ(1, 2) * SQ(1, 2);
    printf("%d", s);
}

}
结果为9,为什么为9?
s=SQ(1,2)SQ(1,2)展开不就是SQ(11+22)SQ(11+22)吗,结果为25,但是编译器输出的值为9,为什么呢

  • 写回答

2条回答 默认 最新

  • micthis 2023-12-30 23:24
    关注
    展开后是:
    (x)*(x)+(y)*(y)*(x)*(x)+(y)*(y)=(1)*(1)+(2)*(2)*(1)*(1)+(2)*(2)=1+4+4=9
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月30日

悬赏问题

  • ¥15 微信小程序web-view嵌套H5页面IOS左滑会出现相同的页面,有什么解决方法吗?
  • ¥60 如何批量获取json的url
  • ¥15 comsol仿真压阻传感器
  • ¥15 Python线性规划函数optimize.linprog求解为整数
  • ¥15 llama3中文版微调
  • ¥15 pg数据库导入数据序列重复
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼