当前位置: 代码迷 >> C语言 >> #define CIR(r) r*r 的含义???
  详细解决方案

#define CIR(r) r*r 的含义???

热度:960   发布时间:2007-11-30 12:49:25.0
9#正解,宏只做简单的替换,并不计算
----------------解决方案--------------------------------------------------------
9L说的很明白了,如果是#define  CIR(r)   (r*r)
就是(a+b)*(a+b)
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]wubizao[/underline][/bold] 于 2007-11-29 21:23 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1123248&ptid=189294][/url]
a+b*a+b is not (a+b)*(a+b)
......

为什么会是这样,引用不是相当与函数吗/////
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2007-11-30 06:20:19
kidd2005

等 级:新手上路
帖 子:193
专家分:0
注 册:2007-11-2
  得分:0 
后面要改为(R)*(R)才能有楼主想要的结果~
----------------解决方案--------------------------------------------------------
#define
语句只是简单的替换,,
如果是:    #define der(x)   x + x
后面如果有  c = der(b) * 10;
则如同:    c = x + x * 10;
----------------解决方案--------------------------------------------------------
#define只做文本替换
----------------解决方案--------------------------------------------------------
他们解释的没错,如果想得到9的结果则需要将宏定义为
#define CIR(r) (r)*(r)
即可, 宏不执行计算, 只是个替换功能
----------------解决方案--------------------------------------------------------
  相关解决方案