導航:首頁 > 源碼編譯 > 編譯器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通用嗎相關的資料

熱點內容
3d文件解壓 瀏覽:356
phpsocket支持 瀏覽:202
更換製冷壓縮機 瀏覽:966
雲伺服器鏡像選哪一個 瀏覽:590
訪問單位伺服器太慢怎麼辦 瀏覽:196
php會淘汰嗎 瀏覽:564
java命令查看內存 瀏覽:154
電商源碼多少錢 瀏覽:275
電腦games文件夾能清空嗎 瀏覽:761
顯示欄文件夾顯示太多 瀏覽:802
安卓信號弱怎麼設置 瀏覽:193
onethink源碼 瀏覽:481
熵變絕熱壓縮 瀏覽:232
如何搭建php環境的伺服器 瀏覽:411
三角旗形整理突破k線圖源碼 瀏覽:787
小米手機怎麼顯示大文件夾 瀏覽:401
蘋果6不用app怎麼下載 瀏覽:233
蘋果手機怎麼把屏幕app變小 瀏覽:543
絕地求生二什麼時候在安卓上線 瀏覽:147
易軟物業管理系統伺服器地址是什麼 瀏覽:13