當前位置:首頁 » 編程軟體 » 編譯運行結果不一樣

編譯運行結果不一樣

發布時間: 2025-02-25 07:23:00

㈠ 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語言同一段代碼,同樣的文件,編譯器為什麼運行結果不一樣

一般來說,C語言程序被編譯為可執行程序後,每次都輸出都是相同的,但有些特殊情況例外,比如,代碼中引入了隨機變數,並讓它出現在輸出結果中。

㈢ 同一個java源代碼編譯執行後運行的結果不一樣,只是什麼原因

多線程或者有隨機運算,或者有時間戳運算,可能太多了

㈣ 一個C++小程序,在不同編譯器里運行結果不一樣,怎麼回事

r和c都沒有初始化,你就while(++r)了,當然結果不一樣。
在這種情況下,一般r,和c是隨機值,但一般是編譯器給的一個負數。
int r=0;
int c=0;

㈤ 為啥同樣一段代碼在codeblocks里邊運行和在visual C++里運行結果不一樣!

學過編譯原理嗎?編譯器的機制可能不盡相同,導致編譯器對代碼的解讀可能會不一致,結果不一致是很正常的事情。但是出現結果不相同,說明你的代碼復雜程度很高,對於一個程序員來說必須保證結果相同,所以代碼應該盡量簡潔、可讀性高。

熱點內容
傳奇裝備屬性腳本 發布:2025-02-25 10:09:26 瀏覽:293
isbn演算法 發布:2025-02-25 10:05:51 瀏覽:800
飛思卡爾編譯器 發布:2025-02-25 10:05:17 瀏覽:505
c編譯版 發布:2025-02-25 10:05:05 瀏覽:993
返利機器人用哪種雲伺服器機器人 發布:2025-02-25 10:01:50 瀏覽:296
centos資料庫啟動 發布:2025-02-25 10:00:58 瀏覽:256
java舊版本 發布:2025-02-25 10:00:56 瀏覽:336
連城訣源碼 發布:2025-02-25 10:00:55 瀏覽:825
英雄聯盟和永劫無間哪個吃配置 發布:2025-02-25 09:49:19 瀏覽:736
如何搭建ntp伺服器 發布:2025-02-25 09:46:58 瀏覽:997