同一段代碼編譯的長度不同
⑴ c語言同一段代碼,同樣的文件,編譯器為什麼運行結果不一樣
一般來說,C語言程序被編譯為可執行程序後,每次都輸出都是相同的,但有些特殊情況例外,比如,代碼中引入了隨機變數,並讓它出現在輸出結果中。
⑵ 紼嬪簭浠g爜闀跨煭鍒嗗埆鏈変綍浼樼己鐐
浣犺寸殑闀跨煭鏄鎸囦竴琛屼腑鐨勪唬鐮侀暱鐭榪樻槸鍑芥暟涓鐨勮屾暟闀跨煭銆
涓嶇℃庝箞瀵圭紪璇戝櫒鍙婅繍琛屾満鍣ㄦ潵璇寸幇鍦ㄥ凡緇忔病鏈夋垨鍑犱箮娌℃湁鍖哄埆浜嗐傚尯鍒涓昏佹槸瀵逛漢璇寸殑銆傝屼笖闀跨煭涔熸槸鐩稿圭殑錛屾病鏈夊滻瀹氬礆紝澶氬皯綆楅暱澶氶暱綆楃煭銆傛垜涓鑸涓涓鍑芥暟鐨勯暱搴︿笉瓚呰繃涓灞忥紝灝辨槸鑳戒竴嬈$湅瀹屾暣涓鍑芥暟鍐呭廣傝繖鏍鋒潵璇寸煭鍑戒腑鐨勫唴瀹瑰彲浠ヤ竴鐩浜嗙劧錛岀畝鍗曟帶鍒訛紝騫朵笖瀹規槗鍙浠ラ噸鐢ㄣ傝岄暱鍑芥暟寰堢畝鍗曞嚭鐜板氶噸宓屽楋紝瑕佺湅瀹岃佺炕灞忥紝涓ラ噸褰卞搷鐞嗚В鑰屼笖鐩稿綋瀹規槗鍑洪敊銆
濡傛灉浣犳湁榪囩淮鎶ゅ悓浜嬬殑鍑犵櫨琛岄暱鍑芥暟浠g爜緇忓巻鐨勮瘽錛屼綘灝變細娣辨繁鐨勪簡瑙d紭緙虹偣浜嗐
⑶ 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語言寫程序,同樣的代碼,為什麼編譯時間每次都不一樣
這個編譯器內部有預編譯的東西,所以時間不一樣,而且計算機的內存,後台進程不一樣,時間也就不一樣了
⑸ 同樣一段代碼,為什麼編譯器不同會不同結果
這很正常,每種語言的標准只是給出了該語言實現的最小集合,而廠家或者開源社區做編譯器的時候,只要遵循這些標准就可以,在此基礎上增加的非標准功能,就有可能不一致了。