導航:首頁 > 源碼編譯 > 為什麼不同的編譯器運行不一樣

為什麼不同的編譯器運行不一樣

發布時間: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;

閱讀全文

與為什麼不同的編譯器運行不一樣相關的資料

熱點內容
實況為什麼安卓看不了 瀏覽:129
Java多線程Queue 瀏覽:94
雲伺服器499元三年 瀏覽:980
nbd源碼 瀏覽:846
x86在arm上編譯 瀏覽:7
linux怎麼配置網路 瀏覽:307
程序員想要的小禮物 瀏覽:186
java獲取網頁url 瀏覽:624
怎麼做解壓神器泡泡版 瀏覽:966
自己動手做一個c編譯器 瀏覽:929
手機如何鏈接谷歌伺服器地址 瀏覽:137
廢掉一個程序員的武功 瀏覽:249
java樹形演算法 瀏覽:641
通達信加鎖指標源碼怎麼看 瀏覽:754
將同名文件移動到部分同名文件夾 瀏覽:403
擺盪指標加壓力線源碼 瀏覽:915
新一代單片機特徵 瀏覽:770
王者的伺服器什麼時候才修好 瀏覽:281
cad歷史命令 瀏覽:41
php博客源代碼 瀏覽:24