|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 宏替换问题,这样也行吗???
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1004
人关注过本帖
标题:
宏替换问题,这样也行吗???
只看楼主
加入收藏
ConZhang
来 自:北京
等 级:
新手上路
帖 子:282
专家分:0
注 册:2007-8-7
第
11
楼
收藏
得分:0
初学者,我也没有看懂,这是怎么回事?能不能详细点讲一下?
谢谢
2007-08-07 22:17
举报帖子
使用道具
赠送鲜花
一个低手
等 级:
新手上路
帖 子:18
专家分:0
注 册:2007-8-6
第
12
楼
收藏
得分:0
S(x)4*x*x+1
main()
{ int i=6,i=8;
printf("%d\n",S(i+j))
}
S(i+j)这里宏替换成S(i+j)=4*(i+j)*(i+j)+1
就是把X用 S括号内的表达试的值替换掉
2007-08-08 10:34
举报帖子
使用道具
赠送鲜花
anelwl
等 级:
新手上路
帖 子:70
专家分:0
注 册:2007-7-26
第
13
楼
收藏
得分:0
回复:(andy_lau)有个程序不懂,如下:#define S(x)...
你这里#define S(x) 4*x*x+1 应该写成4*(x)*(x)+1因为被替换的时候系统不会自动帮你加上括号的,因此最好写成这样4*(x)*(x)+1
2007-08-08 10:56
举报帖子
使用道具
赠送鲜花
jackys2006
等 级:
新手上路
帖 子:195
专家分:0
注 册:2006-3-10
第
14
楼
收藏
得分:0
以下是引用
andy_lau
在2007-8-7 21:31:46的发言:
有个程序不懂,如下:
#define S(x)4*x*x+1
main()
{ int i=6,j=8;
printf("%d\n",S(i+j))
}
答案是81。解释:S(i+j)被替换为4*i+j*i+j+1.不懂的是:为什么是这样替换的?替换的过程这样理解??
规范的带参数的宏应该这样定义
#define S(x) (4*(x)*(x)+1)
也就是说,把每个参数用括号加上,再把整个表达式加上括号
2007-08-08 13:11
举报帖子
使用道具
赠送鲜花
viky2003
等 级:
职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
第
15
楼
收藏
得分:0
以下是引用
jackys2006
在2007-8-8 13:11:50的发言:
规范的带参数的宏应该这样定义
#define S(x) (4*(x)*(x)+1)
也就是说,把每个参数用括号加上,再把整个表达式加上括号
同意!!!
要练习算法就来http:///!!有挑战哦!!
2007-08-08 13:23
举报帖子
使用道具
赠送鲜花
15
2/2页
1
2
快速回复:
宏替换问题,这样也行吗???
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.019205 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved