❶ C語言代碼編譯成的是機器碼,那麼怎麼實現可移植性呢
C語言寫的代碼編譯成了機器碼,與編譯器有關,與當前的電腦的CPU沒有關系
有個概念叫交叉編譯,我們做嵌入式的,就靠這個工作了
也就是在PC上編譯的機器碼,下載到其他的晶元裡面,讓它在這個晶元里運行
只要其他的電腦也支持同樣的編譯器產生的機器碼,就可以一致到它上面
❷ lcc編譯器和tdd-gcc編譯器哪個好
c++編譯器是一個與標准化C++高度兼容的編譯環境。這點對於編譯可移植的代碼十分重要。編譯器對不同的CPU會進行不同的優化。編譯器就是將「高級語言」翻譯為「機器語言(低級語言)」的程序。
❸ 編譯器 可移植性問題
你用tc編的程序,在windows下面可以運行,tc把它編譯成二進制了
只要是windows系統,都能識別該二進制,換了其他的windows系統的電腦,以都能運行的
也就是說,對於windows系統來說,無論你用什麼語言,如pascal,delphi,c++,java,只要你編譯後生成了可執行文件
把它放到其他windows系統的電腦上,也都可以運行的
但是,就算是同一台電腦,如果你既安裝了windows,又安裝了linux
你在windows下編譯出來的可執行文件,切換到linux系統下,就不能運行了
當然了,如果放在其他的系統上,如手機的symbian系統上,也是不能運行的
補充回答:
生成的二進制文件的移植性,是由操作系統,如windows,linux保證的
而我們說的c語言的移植性,是指c語言源碼能否在其他系統上編譯
比如我在windows環境下,寫了一段c代碼,放到linux下,仍然可以編譯,這就說明它的移植性很好
所以,要提供c語言的移植性,必須使用標準的c的代碼
如果你調用了windows的api,那麼在linux下,是無法編譯通過的
❹ 匯編語言編程幾乎不能移植,而C/C++等就容易移植 有點搞不明白
匯編語言,和機器語言一樣,是直接控制硬體的。
每種CPU,都有自己的機器語言,所以匯編不能移植。
C語言,並不直接控制硬體。
在不同的機器上,有相應的編譯軟體,可以把C,編譯成自己系統的機器語言。
容易移植的關鍵:C語言是不直接控制硬體的。
❺ 編譯程序中間代碼的生成對編譯器的前端和後端有什麼作用
編譯器粗略分為詞法分析,語法分析,類型檢查,中間代碼生成,代碼優化,目標代碼生成,目標代碼優化。把中間代碼生成及之前階段劃分問編譯器的前端,那麼後端與前端是獨立的。後端只需要一種中間代碼表示,可以是三地址代碼或四元式等,而這些都與前端生成的方式無關。也就是不論你前端是用fortran還是c/c++,只要生成了中間代碼表示就可以了,後端是不管你是用哪種語言生成的。
❻ 64位機器MATLAB2013b和MATLAB2014a沒有LCC編譯器,怎麼安裝它
要用MATLAB2013a的mex功能重新編譯一下C文件,但是64位的MATLAB沒有自帶的編譯器。所以使用mex -setup安裝。安裝MATLAB2013a支持的編譯器,有SDK7.1等21個,但是win8的電腦似乎裝不了SDK7.1,有SDK8.1 可以裝在win8.1 上,但是悲劇的是MATLAB2013
❼ 沒有matlab自帶編譯器LCC,只有下面這個編譯器,怎麼把guide封裝成exe
網路 deploytool函數
❽ 請問一下lcc編譯器裡面C語言的問題
作死的用法,直接把文件"token.h"的(預處理後的)內容作為數組的元素……
❾ 編譯前端和後端各有什麼特點,各自包含編譯過程的哪幾個部分
編譯前端主要包括詞法分析、語法分析、語義分析、中間代碼生成這幾個部分,後端則包含代碼優化和目標代碼生成部分。前端的特點是僅與編譯的源語言有關,而後端則僅與編譯的目標語言及運行環境有關。
將編譯過程劃分成前端和後端,主要目的是在多種源語言和多種目標語言的開發過程中,可以靈活搭配組合,消除重復開發的工作量,提高編譯系統的開發效率。
❿ PIC的編譯器CCS與PICC的語言有什麼不同的地方,兩者可以相互移植嗎
對於標準的ANSC C語言部分沒什麼問題,如用C語言的數據類型寫的簡單演算法之類,可以互相移植。
對於單片機編譯而言,
PICC的C語言按ANSI C來定義,並進行了C語言的擴展。PICC和ANSI C有一個根本的區別就是,PICC不支持函數的遞歸調用。
CCS也是C語言,但也不是標準的ANSI C語言,它的頭文件定義與ANSI C語言不同,所以它的程序和PICC不能混著編譯,兩者之間也不能混著移值。針對CCS編寫的程序只能用CCS的編譯器編譯,用PICC編譯只能報錯,反之亦然。