| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 725 人关注过本帖
标题:这个程序的结果怎么会是这样的,请大虾指教。
只看楼主 加入收藏
bigzerg
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-5-19
收藏
 问题点数:0 回复次数:4 
这个程序的结果怎么会是这样的,请大虾指教。
#define ADD(x) x+x
void mian(   )
{int a=2,b=1;
prinft("%d\n",3*ADD(a+b));}


输出结果是10。为什么?
搜索更多相关主题的帖子: 结果 指教 ADD 
2008-06-10 21:16
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:0 
3*ADD(a+b)
展开为3*a+b+a+b=10
注意宏与函数的概念!
要想得到结果可
#define ADD(x) (x)+(x)
然后3*ADD(a+b)改为3*(ADD(a+b)) 好像很麻烦???
不过为了理解宏的概念,可以尝试一下。。。
2008-06-10 21:24
jiang5495
Rank: 1
等 级:新手上路
威 望:2
帖 子:296
专家分:0
注 册:2008-5-11
收藏
得分:0 
同意楼上的看法.
宏只能做简单的替换,
不能像 const一样
2008-06-10 21:29
bigzerg
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-5-19
收藏
得分:0 
多谢~~
2008-06-10 22:54
now
Rank: 1
来 自:广州
等 级:新手上路
帖 子:544
专家分:0
注 册:2007-11-9
收藏
得分:0 
仅为文本替换,不作计算

GIS
Geographic Information System
你在哪里?——》你的坐标?
2008-06-10 23:45
快速回复:这个程序的结果怎么会是这样的,请大虾指教。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028296 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved