|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 有关于预处理define的问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
961
人关注过本帖
标题:
有关于预处理define的问题
只看楼主
加入收藏
bb060789000
等 级:
论坛游民
帖 子:15
专家分:10
注 册:2009-8-28
结帖率:
66.67%
楼主
收藏
已结贴
√
问题点数:20 回复次数:13
有关于预处理define的问题
程序如下:
#define
f(r)
r*r
#include<stdio.h>
main( )
{
int i;
i=f(4+4);
printf("%d\n",i);
}
结果是:24
我想问的是为什么结果不是64呢? 我想问,是不是先求出4+4之后再代入到r里的, 希望给出解此题的思路。
搜索更多相关主题的帖子:
预处理
define
2009-08-28 14:46
举报帖子
使用道具
赠送鲜花
zhengzhihui
来 自:汕头大学
等 级:
论坛游民
帖 子:36
专家分:57
注 册:2009-7-4
第
2
楼
收藏
得分:5
很简单吗,r=4+4,代入之后是4+4*4+4=24;
要想得到64,必须定义成这样"#define f(x) (r)*(r).
2009-08-28 14:57
举报帖子
使用道具
赠送鲜花
jammyzm
等 级:
论坛游侠
帖 子:90
专家分:126
注 册:2008-12-1
第
3
楼
收藏
得分:0
GOOD
2009-08-28 15:02
举报帖子
使用道具
赠送鲜花
Kiu
等 级:
论坛游侠
帖 子:68
专家分:107
注 册:2009-7-31
第
4
楼
收藏
得分:0
2009-08-28 16:07
举报帖子
使用道具
赠送鲜花
bb060789000
等 级:
论坛游民
帖 子:15
专家分:10
注 册:2009-8-28
第
5
楼
收藏
得分:0
#define
f(r)
r*r
#include<stdio.h>
main( )
{
int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
结果是:28
那又为什么呢???
希望详细点讲一下,thx
2009-08-28 16:17
举报帖子
使用道具
赠送鲜花
xdyuan33
来 自:广西大学化工学院
等 级:
论坛游侠
帖 子:146
专家分:145
注 册:2009-7-24
第
6
楼
收藏
得分:15
带参数的宏仅仅是作(简单的替换)而已,它展开时并不求参数的值。
#infine
f(r)
r
*
r
|
|
|
|
#infine
f(a+b)
a+b
*
a+b
|
|
|
|
#infine
f(4+4)
4+4
*
4+4
这样看可能好看一点,就是a+b换r,
第二个宏展开就是:a+b
*
a+b
换成f(4+4)那就是:
4+4
*
4+4 = 4+4*4+4=24
参与切磋是美德,每天回帖即可获得10分可用分!
2009-08-28 18:51
举报帖子
使用道具
赠送鲜花
luoweijun
等 级:
论坛游侠
帖 子:67
专家分:138
注 册:2009-6-12
第
7
楼
收藏
得分:0
楼上的很详细,我说下28 的原因
上边的程序时这样计算的4+4*4+4/2+2*2+2=28
2009-08-28 19:52
举报帖子
使用道具
赠送鲜花
liangonejzh
等 级:
论坛游民
帖 子:20
专家分:18
注 册:2009-7-30
第
8
楼
收藏
得分:0
2009-08-28 19:57
举报帖子
使用道具
赠送鲜花
xuleiyee001
等 级:
论坛游民
帖 子:44
专家分:17
注 册:2009-4-21
第
9
楼
收藏
得分:0
预处理只是字符替换,不会计算的
2009-08-28 20:06
举报帖子
使用道具
赠送鲜花
bb060789000
等 级:
论坛游民
帖 子:15
专家分:10
注 册:2009-8-28
第
10
楼
收藏
得分:0
很好很强大,一看就明白了,都是怪我看书没有看仔细点,真的多谢晒啦,哈哈,不要怪我学得慢,因为我已经很努力了。
2009-08-30 02:00
举报帖子
使用道具
赠送鲜花
14
1/2页
1
2
快速回复:
有关于预处理define的问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024402 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved