“++j + ++j + ++j"不同编译器不同结果

软件和网站开发以及相关技术探讨
头像
hubert_star
论坛版主
帖子: 5373
注册时间: 2007-10-29 22:12
系统: OSX 10.9 + Ub 1304
来自: 江苏南京

#16

帖子 hubert_star » 2007-11-15 9:41

别听他们的,我欣赏你!

没有刨根问底的精神就不会有进步!

我写c都10年了,碰到类似的问题也很头疼,而c里面结构很多东西都是绕来绕去的,如果没有问题解决的积累是不会有进步的,虽然这样的代码出现几率比较小。

不过话说回来,看汇编才是硬道理

很多平台移植性的问题都出在类似这样的代码,不同编译器结果不一样,这个代码如果扩充一下的话16位和32位机器就会有溢出上的错误。小问题多了,移植也就不现实了。最重要的是c标准很多东西并未明确定义,而现今几乎所有的其他语言都是构建在c之上,大多数的操作系统/应用其实也都落实到编译器不同上面。编译器灵活性一开放就会造成问题。

别的不说,你是tc和gcc比较,现在在linux上就算gcc2.95上编译通过的程序可能都和gcc3的程序在运行结果上有差异。

按这种精神走下去,你就是下一个stallman
头像
tlhl28
帖子: 474
注册时间: 2006-09-02 18:58
来自: 深圳

#17

帖子 tlhl28 » 2007-11-15 17:06

......
明白明白......
又不是我想要写的......
谢谢czk,我刚好也看到了有关sequence point的解说
回复