當前位置:首頁 » 編程語言 » c語言跨平台

c語言跨平台

發布時間: 2022-04-17 01:40:15

java語言跨平台是因為虛擬機,那麼為什麼c語言沒有一個跨平台的虛擬機

java語言的跨平台說白了是讓程序員用戶可以跨平台,它的平台移植與管理交給某個團隊統一管理。就是java虛擬機需要某個團隊寫多個不同平台的代碼,java程序員只寫java代碼,編譯一次就可以在多個平台上運行。
c語言有跨平台的虛擬機,比如VMware
Workstation在Windows上創建一個linux虛擬機,或者你有興趣也可以自己寫在多個平台上運行的c虛擬機。
因為c主要用在嵌入式編程,面對的是多種多樣的硬體設備,在多樣性面前很難統一,寫虛擬機維護與管理成本太高,沒人願意去做。除非硬體廠商都按一個標准,那麼c就可以很輕松地擁有跨平台虛擬機。

❷ C語言是如何編譯與組建的,跨平台性

c語言能跨平台是因為各個平台有相應的c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能,但是這些二進制文件本身是不一樣的
exe就是2進制的,但不完全是原來程序的代碼,還包括了windows系統的一些代碼

❸ c語言為什麼能跨平台或是如何跨平台的

c語言能跨平台是因為各個平台有相應的c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能,但是這些二進制文件本身是不一樣的

exe就是2進制的,但不完全是原來程序的代碼,還包括了windows系統的一些代碼

科普一下,C最早是出現在Unix下的,Windows那都是後話了,C出現的時候Windows還沒開發出來呢。
C有個比較特別的稱呼,叫中級語言,因為它有高級語言的特性又能跟底層硬體很好的交互所以才有這么個說法。DOS時代在C裡面嵌上一段匯編直接從並口讀個數上來那是很流行的,現在沒見誰在VC裡面這么干吧。Windows也不讓啊。想訪問硬體怎麼也得通過驅動。
說遠了,C在多種平台下可以實現代碼級的共享,跨平台就需要重新編譯了。
但是,我也見過有的軟體是可以在多種平台上運行了,可能有什麼特別的技術,可以先識別一下操作系統,再運行相應的代碼。這個應該是在編譯的時候有特殊的技巧。
C編譯、連接器網上有現成的代碼,一般不是很專業的技術人員沒有去研究它。我一直把玩編譯原理的視為天人,有能力把編譯原理那本書看完的就很不容易了,再要能領會其中精要那就成才了,能把龍書虎書鯨書都搞明白的那就是一流專家了。

❹ C語言到底有沒有跨平台性

C語言本來就是跨平台的,不過是「源碼級」跨平台。本來就是存在針對linux、windows的不同的編譯器。所以有C語言「一次編寫,到處編譯」,Java是「一次編譯,到處運行」的說法。

如C++創始人酸溜溜的說法,JVM造了一個新的平台,讓所有Java程序只能在這個平台上運行,而C和C++的代碼可以在幾十個不同的平台上運行,從這個角度而言,C和C++是跨平台的,而Java不是

❺ C語言是不是跨平台的

回答可以說是也不是。
C的源代碼是跨平台的而編譯後的目標文件和可執行文件就不是跨平台的。

因為針對不同的平台會用不同的編譯器來編譯和鏈接同樣的源代碼。

當然如果你的代碼里有針對某種特定平台的代碼的話(比如Windows API調用),那麼用針對其它平台的編譯器就會出錯。

一般來說如果想寫真正跨平台的源代碼會用#define 來實現有條件的編譯。

❻ c語言是如何跨平台的

c語言能跨平台主要因為各個平台包括DOS,Windows,Linux,UNIX等都有c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能(不包括跨平台的系統調用)。但是這些二進制文件不一樣,Linux中的可執行文件一般情況下都不能在Windows中運行,因為他們是兩個完全不同的操作系統,有不同的內核,不同的系統調用。但編譯器會根據不同的平台生成不同的代碼,使二進制文件能在專有的平台中運行,並且實現相同的功能。

跨硬體平台也是類似,在各種平台上,如x86,x86_64,Sparc,ppc,Motorola等都有相應的編譯器。編譯器會把相同的c語言代碼編譯成不同的機器指令,這樣就可以實現跨平台了。

總而言之,跨平台主要是靠各個平台上的編譯器。

❼ C語言是跨平台的么如果是 那麼C語言的跨平台特性和java的跨平台特性有什麼不同

標准C和標准C++都是源代碼級跨平台的, 也就是說你用標准C/C++寫的代碼在windows下編譯後就可以windows下運行, 在unix/linux下編譯後就可以在unix/linux下運行.c語言能跨平台主要因為各個平台包括DOS,Windows,Linux,UNIX等都有c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能(不包括跨平台的系統調用)。但是這些二進制文件不一樣,Linux中的可執行文件一般情況下都不能在Windows中運行,因為他們是兩個完全不同的操作系統,有不同的內核,不同的系統調用。但編譯器會根據不同的平台生成不同的代碼,使二進制文件能在專有的平台中運行,並且實現相同的功能。
總之,C的源代碼是跨平台的而編譯後的目標文件和可執行文件就不是跨平台的,跨平台主要是靠各個平台上的編譯器。

在使用匯編語言的時代里,每個廠家都有一套自己的匯編語言,那時計算機程序與機器綁定,不是同一個廠家的程序在其他廠家的平台下就不能運行。直到C語言出現以後,我們才能將X86平台下的C語言程序源文件,換到POWER平台編譯以後直接運行。因此C的跨平台移植功能是指在硬體架構上的移植性。 JAVA的跨平台能力是指其不需要指定操作系統可以直接運行。

C語言「一次編寫,到處編譯」,Java是「一次編譯,到處運行」。
如C++創始人酸溜溜的說法,JVM造了一個新的平台,讓所有Java程序只能在這個平台上運行,而C和C++的代碼可以在幾十個不同的平台上運行,從這個角度而言,C和C++是跨平台的,而Java不是。

❽ c語言為什麼能跨平台或者是如何跨平台的

c語言能跨平台是因為各個平台有相應的c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能,但是這些二進制文件本身是不一樣的。

exe就是2進制的,但不完全是原來程序的代碼,還包括了windows系統的一些代碼。

科普一下,C最早是出現在Unix下的,Windows那都是後話了,C出現的時候Windows還沒開發出來呢。

C有個比較特別的稱呼,叫中級語言,因為它有高級語言的特性又能跟底層硬體很好的交互所以才有這么個說法。DOS時代在C裡面嵌上一段匯編直接從並口讀個數上來那是很流行的,現在沒見誰在VC裡面這么干吧。Windows也不讓啊。想訪問硬體怎麼也得通過驅動。

C在多種平台下可以實現代碼級的共享,跨平台就需要重新編譯了。

但是,我也見過有的軟體是可以在多種平台上運行了,可能有什麼特別的技術,可以先識別一下操作系統,再運行相應的代碼。這個應該是在編譯的時候有特殊的技巧。

C編譯、連接器網上有現成的代碼,一般不是很專業的技術人員沒有去研究它。我一直把玩編譯原理的視為天人,有能力把編譯原理那本書看完的就很不容易了,再要能領會其中精要那就成才了,能把龍書虎書鯨書都搞明白的那就是一流專家了。

❾ c語言可跨平台嗎

你說的跨平台是指什麼?操作系統平台么?
如果是指操作系統平台的話,那要看是什麼操作系統了,同一個程序的微軟之間的系統平台之間的c語言都是相同的,但是如果是linux和微軟操作系統之間的話就不同了

❿ 什麼是c語言,為什麼要學c語言

最佳答案:從學習的角度來說,學習C語言是很必要的,C語言有如下優勢:① C語言比較靈活,可以直接使用指針。② C語言是跨平台的語言,幾乎...

熱點內容
安卓模擬器10開配什麼電腦 發布:2025-07-19 16:30:36 瀏覽:804
sql2008鏈接伺服器 發布:2025-07-19 16:23:47 瀏覽:845
香港阿里騰訊雲伺服器報價 發布:2025-07-19 16:18:52 瀏覽:416
日語翻譯存儲安全 發布:2025-07-19 16:18:09 瀏覽:210
虛擬機訪問主機ip 發布:2025-07-19 16:16:37 瀏覽:998
dz手機源碼 發布:2025-07-19 16:14:50 瀏覽:704
如何利用伺服器掛機器人 發布:2025-07-19 16:13:35 瀏覽:531
解壓縮已 發布:2025-07-19 16:02:46 瀏覽:580
預處理編譯鏈接 發布:2025-07-19 15:59:03 瀏覽:874
文件夾無限打開 發布:2025-07-19 15:57:01 瀏覽:277