導航:首頁 > 源碼編譯 > 編譯器cpu通用嗎

編譯器cpu通用嗎

發布時間:2024-11-12 20:27:13

1. 是不是每種處理器都要開發自己的編譯器,比如inter的cpu,arm,51單片機

每個處理器廠家都會開發本身的編譯器。這是硬體設計與系統工程師的工作。軟體編輯員一般都不需染手此東西。是否每個牌子的處理器都須有自己的編譯器呢?未必。
比如Intel,AMD,VIA 同是用x86平台都可享用Intel的編譯器。
又如Siemens, SGI,NEC 同出產MIPS平台的處理器都可享用MIPS 的編譯器。
但有些特別指令如INTEL的MMX,SSE1,2,3,4;AMD的3DNOW,AMD64 等就有勞個產家編寫。
如沒有特別指令編譯器, 軟體會出錯嗎?很多高檔程序編輯軟體都會翻譯及處理,用標准指令來取代特別指令(應該說不用特別指令),當然執行速度會慢過特別指令。

2. 相同的c語言代碼,在不同的編譯器,不同的操作系統上面生成的指令是不是不同的

不同的CPU生成的指令不一樣、不同的編譯器C語言實現方式不一樣、不同的操作系統API不一樣。使用C語言只能做到源代碼級別的跨平台和跨編譯器。

3. 匯編語言不能移植,不一樣通過編譯器編譯成二進制

代碼可移植指的是,舉例來說C語言,在不同平台都有它的編譯器,同樣一段c語言程序通過這些編譯器編譯形成可執行代碼都能在各自平台上運行
匯編語言由於受到各cpu指令的限制,沒有通用性,比如Intel上的匯編代碼,通過編譯器形成可執行代碼,在Intel上可以運行,但你拿這些代碼放到蘋果的cpu上,蘋果系統提供的編譯器就無法正確編譯這些匯編代碼形成可在蘋果cpu上運行的執行代碼,那麼我們說,匯編代碼不能直接移植。

4. 每個編譯器都不一樣么 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設置不同。

閱讀全文

與編譯器cpu通用嗎相關的資料

熱點內容
離心壓縮機檢修規程 瀏覽:430
如何收聽安卓手機發來的鏈接 瀏覽:399
福建微法院app怎麼用 瀏覽:208
android陀螺儀應用 瀏覽:719
新加坡加密貨幣騙局 瀏覽:910
電腦文件夾打開自動變為全屏 瀏覽:969
簡易單斷面計演算法 瀏覽:850
php社區程序 瀏覽:976
python現在就業怎麼樣 瀏覽:304
php上傳目錄許可權設置 瀏覽:736
php合同檔案管理系統 瀏覽:366
tshock伺服器地址 瀏覽:877
php解析文件流 瀏覽:780
伺服器機箱銅片有什麼用 瀏覽:969
樂視手機如何使用原生態安卓 瀏覽:216
dns伺服器怎麼備份啊 瀏覽:865
蘋果退款app怎麼重新購買 瀏覽:655
U盤cmd檢查文件夾成文件 瀏覽:66
java路徑是否存在 瀏覽:338
新氧app上怎麼測臉型 瀏覽:787