[求助]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里面好像即不是从右往左算也不是从
左往右算,请高手赐教,谢谢。