导航:首页 > 源码编译 > 为什么不同的编译器运行不一样

为什么不同的编译器运行不一样

发布时间:2024-05-26 06:04:06

‘壹’ 涓轰粈涔堟垜鐢╲c++6.0鍜寁s2010缂栬疟钖屼竴娈典唬镰併佽繍琛岄熷害澶╁樊鍦板埆

杩欎釜鍙鑳芥槸锲犱负6.0鍜2010镓浣跨敤镄勫嚱鏁板簱鍙鑳戒笉钖岋纴阈炬帴镄勭郴缁熷簱涓嶅悓
浣犲彲浠ラ噰鐢ㄤ笅闱㈢殑鏂规硶鍐嶈瘯涓涓嬶细
1銆佸垱寤洪”鐩镄勬椂鍊欓夋嫨涓涓绌虹槠镄勬带鍒跺彴椤圭洰锛屽氨鏄鍒涘缓瀹屼互钖庝竴涓鏂囦欢閮芥病链夌殑闾g嶃
铹跺悗娣诲姞涓涓猚++婧愭枃浠讹纴灏嗕唬镰佸啓杩涘幓
2銆佺紪璇戠殑镞跺栾板缑鐢╮elease妯″纺
3銆佽板缑杩愯岀殑镞跺椤叧闂鐢佃剳镄勫叾浠栫▼搴忥纴灏介噺璁ヽpu镄勪娇鐢ㄧ巼淇濇寔涓镊
杩欐牱鍐嶈瘯涓涓嬬湅鐪

棰濆栬存槑涓涓嬶纴2010镄勫姛鑳芥瘆6.0寮哄ぇ寰埚氾纴镓浠ュ悓镙蜂竴娈典唬镰佺殑缂栬疟锛屽畠浼氭瘆6.0娣诲姞镟村氱殑杈呭姪镐х殑涓滆タ杩涘幓銆备絾姝e父镄勮瘽锛宺elease鐗堟湰鍦ㄨ繍琛岄熷害涓婂簲璇ユ槸娌℃湁鍙桦寲镄勶紒

濡傛灉鎸夌収涓婇溃镄勮缮链夎繖镙峰ぇ镄勫尯鍒锛岃峰拰鎴戣仈绯
鎴戜篃寰堟劅鍏磋叮锛

‘贰’ 同样的fortran代码用不同编译器或同一编译器的不同编译方式,编译运行的结果不同,具体如下,是何原因

我觉得可能与代码有关系,不同编译器不同的编译模式是存在差异的,包括浮点运算,代码优化方面是有不同

‘叁’ 为什么汇编代码在不同编译器上结果不一样

也许是masm版本不同引起的,高版本功能更强、会进行某些优化。
另,有些功能,在汇编中也会有不同的实现方式;再,高版本对伪指令的用法也许进行优化调整。

‘肆’ C语言同一段代码,同样的文件,编译器为什么运行结果不一样

有如下几种可能:
1 代码运行的平台硬件不同。
不同的CPU,如嵌入式CPU,intel CPU,以及IBM的CPU,在硬件最底层就是不同的,而C语言是一门和底层相关性极大的语言,在不同的硬件上运行出不同结果是很正常的。

2 代码运行的系统不同。
相同CPU在不同操作系统上跑相同代码时,一样会出现不同的结果。这是由于系统底层的实现不同造成的。比如linux和Windows,在底层处理上就有一定的差异。

3 编译器不同,同时代码中使用了C规范未定义规则的语句。
C语言规范并没有对C语言的所有行为做定义,所以相同语句,不同编译器的运行效果可能有所不同。比如同样的sizeof(int),在16位编译器上结果为2,而32位编译器上就会是4。

4 代码获取到的外部数据不同。
比如运行代码时获取到的其它输入不同,包括程序中获取的环境变量,实时信息,以及各种外部输入等,均有可能出现不同。
比如在做随机数时,如果以当前时间设定随机数种子,由于每次的时间是不同的,同一个程序每次运行的结果都是不同的。

‘伍’ 同一段程序,不同的编译工具,运行时间会不同吗 就比如C-FREE和VC6++

会的,会有很大的差异的。因为不同的编译器会对代码进行不同的优化。你如果你Intel的编译器,可能会更快!
intel 编译器:

https://software.intel.com/en-us/intel-parallel-studio-xe/

‘陆’ 同样一段代码,为什么编译器不同会不同结果

这很正常,每种语言的标准只是给出了该语言实现的最小集合,而厂家或者开源社区做编译器的时候,只要遵循这些标准就可以,在此基础上增加的非标准功能,就有可能不一致了。

‘柒’ 每个编译器都不一样么 c语言一般用什么编译器 每次一种编译器不能编译 另一种却能编译出

编译器就是c语言编译成二进制的东西,
不同的编译器是不同的, 比如16位系统和32位系统的编译器就不同,因为16位的认为int是2字节,32位的则认为是4个字节。 另外 linux上的编译器跟windows下的编译器也不同,linux上的认为内核空间占1G,而windows下则认为占2G, 此外两个系统对环境变量以及其他的设置也不同所以编译器更不能用。
而且不同的CPU的指令集时不同的,所以同样int a =1 最后被编译成的二进制代码也是不同的。

C语言的编译器有很多,windows下的编译器也有很多,不同的编译器可能会做一些不同的优化,linux下的gcc也可以添加选项让他编译windows下运行的程序。
main(int argc,char*argv[ 】 ) argc 是你的参数个数 argv是你的参数。
比如你最终程序叫 add 那么 你在命令行执行add 1 2 那么argc =3 第一个参数使你的add, 第二个第三个就是 1 2, 在函数内部你就可以获取这俩参数进行相加然后打印

visual 是个IDE,集成开发环境,已经集成好了windows下使用的编译器连接器 等, 编写代码完成后直接点击编译就行了。 IDE的默认编译器是可以更改的,不同的IDE设置不同。

‘捌’ 一个C++小程序,在不同编译器里运行结果不一样,怎么回事

r和c都没有初始化,你就while(++r)了,当然结果不一样。
在这种情况下,一般r,和c是随机值,但一般是编译器给的一个负数。
int r=0;
int c=0;

阅读全文

与为什么不同的编译器运行不一样相关的资料

热点内容
oppor系列如何解除应用加密 浏览:599
程序员那么可爱姜逸城初恋 浏览:496
modbustcp编程 浏览:491
实况为什么安卓看不了 浏览:129
Java多线程Queue 浏览:95
云服务器499元三年 浏览:980
nbd源码 浏览:847
x86在arm上编译 浏览:8
linux怎么配置网络 浏览:307
程序员想要的小礼物 浏览:187
java获取网页url 浏览:625
怎么做解压神器泡泡版 浏览:967
自己动手做一个c编译器 浏览:930
手机如何链接谷歌服务器地址 浏览:137
废掉一个程序员的武功 浏览:249
java树形算法 浏览:642
通达信加锁指标源码怎么看 浏览:755
将同名文件移动到部分同名文件夹 浏览:404
摆荡指标加压力线源码 浏览:916
新一代单片机特征 浏览:770