| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 844 人关注过本帖
标题:问一个关于宏的问题
只看楼主 加入收藏
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
但是为什么?
#include<stdio.h>
#define CUBE(x) (x*x*x)
main()
{
int x;
clrscr();
x=5;
printf("%d\n",CUBE(++x));
getch();
}
结果:
336

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-01-06 15:41
myisgood
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-12-25
收藏
得分:0 
是 392    我用的VC++6。0
2007-01-06 15:41
myisgood
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2006-12-25
收藏
得分:0 

人家不是 也说了是392了么?~

2007-01-06 15:42
nsynczy
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-1-5
收藏
得分:0 

对头,我用的是Cfree:):)

2007-01-06 15:47
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
(++x*++x*++x)

运行的顺序那就是:
一:((++x*++x)*++x) 先做前两个数的乘运算,
(++x*++x)把所的++ 先做,再做 * (++x*++x)=(7*7)=49
二: (49*++x)
先做++ x就等于8 再做 * 所(49*++x)=(49*8)=392

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-01-06 15:56
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
呵呵,楼上的解释很有道理啊!

该学习了。。。
2007-01-06 16:10
wyzn12
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-10-28
收藏
得分:0 
编译器不同,结果也不同
你们的解释都是针对不同的编译器而言的

新王登基,血流成河!
2007-01-08 08:47
快速回复:问一个关于宏的问题
数据加载中...
 
   



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

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