| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1116 人关注过本帖
标题:[求助]gcc 4.1.1版与 gcc 3.4.4版,编译出不同结果。不知道gcc4.1.1是如何编 ...
只看楼主 加入收藏
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
 问题点数:0 回复次数:7 
[求助]gcc 4.1.1版与 gcc 3.4.4版,编译出不同结果。不知道gcc4.1.1是如何编译。
main ()
{
int a=8;
printf("%d\t%d\t%d\n",++a,--a,a--);
int x=8;
printf("%d\t%d\n",++x,++x);
int i=8;
printf("%d\t%d\t%d\t%d\t%d\n",i--,--i,--i,i--,i++);
}

以上程序如果在gcc3.4.4版本下编译,结果就是我们认为正常的:
7 6 8
10 9
6 6 7 9 8
可是,如果在gcc4.1.1版本下编译,结果就是我们想不到的结果:
7 7 8
10 10
6 5 5 9 8
不知道为什么这两个编译器差这么多,gcc4.1.1是根据什么来编译以上代码呢?在3.4.4版>本上,我们知道他的从右往左计算的,可到了gcc4.1.1里面好像即不是从右往左算也不是从
左往右算,请高手赐教,谢谢。

搜索更多相关主题的帖子: gcc 编译 结果 
2007-11-15 12:37
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
得分:0 
怎么没人回复,难道大家都没发现这个问题?
2007-11-15 17:59
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 

高手来指点啊,让我也学习学习!

2007-11-15 18:43
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
完全没有必要挖掘这个,好好学习算法和数据结构是关键,抠这个没有用(不同的编译器甚至不同版本的编译器的结果是不同的)

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-11-15 18:46
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
得分:0 
我们应该搞明白他的结果是怎么出来的吧?要不然怎么写代码?
2007-11-15 19:13
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
我相信不会为了减少一点代码量而采用
printf(" ...",i++,++a);
这种方式,完全可以使用i=i+1; a+=1; 然后printf("...",i,a);
朴实的代码+完美的算法远远好于华丽的代码+漏洞百出效率低下的算法
而且如果采用您的方法,那岂不是您的代码会"养"成编译器依赖,在其它编译器下出现很大的错误或问题?

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-11-15 19:21
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
有道理!要我写也不会写出这样的代码来!
2007-11-15 19:24
kinglon
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2007-9-25
收藏
得分:0 
如果在实际的工程中,我相信没人会写出这样的代码,我也不会。
现在我只是想知道这个gcc4.1.1是依什么样的规律来计算上面的代码的,只不过是想知道以上代码在GCC4.1.1里面的计算方向是什么样的,或是他的结果是怎么出来的,不知道有高手知道吗,谢谢。
(实际工程中,我也不会写出那样的代码,要不然我自己都会晕。。。虽然不会写出那样的代码,但是他的道还是应该弄明白的。)
2007-11-16 10:26
快速回复:[求助]gcc 4.1.1版与 gcc 3.4.4版,编译出不同结果。不知道gcc4.1.1是 ...
数据加载中...
 
   



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

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