不同的编译器、不同的硬件平台以及不同的操作系统,最终编译出来的结果一样吗?为什么?

来源:互联网 发布:网站数据久了数据很多 编辑:程序博客网 时间:2024/06/06 05:58

不一样。

对于不同的编译器,整个流程(预处理——编译器(词法分析、语法分析,语义分析...)——汇编器——链接器)之中只要有稍微一点的不同,我想编译后的结果——可执行文件都是不同的。

对于不同的硬件平台,比如x86、SPARC、MIPS、ARM等,它们的寻址方式、地址格式、指令格式等等等等都不相同,那么编译的过程必然也会有所不同,结果自然不同。

对于不同的操作系统,答案是一目了然的。不同的操作系统下,它的可执行文件格式的要求都不相同,共享库以及动态链接方式都不一样,那么结果肯定也就不一样的啦。

zz《程序员的自我修养——装载、链接与库》
原创粉丝点击