宏问题

zsx123 2007-03-30 11:13:16
#define SQR(X) X*X
int main(int argc, char* argv[])
{
int a = 10;
int k = 2;
int m = 1;
a /= SQR(k+m)/SQR(k+m);
printf("%d\n",a);
return 0;
}

a /= SQR(k+m)/SQR(k+m);
====================
是不是替换为a/=k+m*k+m/k+m*k+m吗?

怎么答案如下是这样替换呢
a /= (k+m)*(k+m)/(k+m)*(k+m);
=>a /= (k+m)*1*(k+m);
=>a = a/9;
=>a = 1;
...全文
189 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamcaicainiao 2007-03-30
  • 打赏
  • 举报
回复
自从有了inline,尽量少用const啊。

至于到底替换成啥样子,你用find replace就知道了啊
jixingzhong 2007-03-30
  • 打赏
  • 举报
回复
#define SQR(X) X*X
==》
#define SQR(X) ((X)*(X))
iu_81 2007-03-30
  • 打赏
  • 举报
回复
#define SQR(X) (X)*(X)
才是你所说的答案所示
iu_81 2007-03-30
  • 打赏
  • 举报
回复
确实为a/=k+m*k+m/k+m*k+m
darkrainbow 2007-03-30
  • 打赏
  • 举报
回复
应该是 a /= (k+m)*(k+m)/(k+m)*(k+m); 吧
至于这里 =>a /= (k+m)*1*(k+m); 就好像不对了, 应该是从左到右的运算法则...
jiarusun000 2007-03-30
  • 打赏
  • 举报
回复
SQR 替换成 X*X
takecareofmyself 2007-03-30
  • 打赏
  • 举报
回复
自从有了inline,尽量少用const啊。
===================================
???
是尽量少用macro吧,const还是要多用的.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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