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

c語言是跨平台的嗎

發布時間: 2022-10-03 07:16:25

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

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

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

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

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

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

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

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

㈡ C語言是不是跨平台的

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

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

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

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

㈢ c語言跨平台嗎

是的,這個語言是跨平台的

㈣ 為什麼說c語言是跨平台語言,不就是編譯器嗎

C語言---是標准,定義了一些條條框框,文字上的東西如C89,C99如ISO/IEC
C99
編譯器是根據這些條條框框來做的,不能違反(但也不是那麼特別死要求的),對於它來說,標准就好像是法律。
說到跨平台,並不是講每一個WIN下的可編譯正確運行的C代碼,就能100%放到linux或*bsd下運行的,據我的一點經驗,寫代碼人是否按照標准規范寫的,用的非標准庫函數是否在WIN及UNIX平台下都能正常,都有限制的

㈤ c語言可跨平台嗎

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

㈥ c語言是如何跨平台的

標准C和標准C++都是源代碼級跨平台的,nbsp;也就是說你用標准C/C++寫的代碼在windows下編譯後就可以windows下運行,nbsp;在unix/linux下編譯後就可以在unix/linux下運行.跨硬體平台是靠編譯器的,比如要輸出一個字元,C里用printf(「C「);硬體平台a用中斷A輸出,nbsp;硬體b用中斷B輸出,nbsp;那麼就得有兩個不同的編譯器,nbsp;它們都用不同的方法實現C的功能

㈦ c語言是如何跨平台的

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

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

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

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

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

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

熱點內容
安卓上哪裡下大型游戲 發布:2024-12-23 15:10:58 瀏覽:189
明日之後目前適用於什麼配置 發布:2024-12-23 14:56:09 瀏覽:56
php全形半形 發布:2024-12-23 14:55:17 瀏覽:829
手機上傳助手 發布:2024-12-23 14:55:14 瀏覽:733
什麼樣的主機配置吃雞開全效 發布:2024-12-23 14:55:13 瀏覽:831
安卓我的世界114版本有什麼 發布:2024-12-23 14:42:17 瀏覽:711
vbox源碼 發布:2024-12-23 14:41:32 瀏覽:279
詩經是怎麼存儲 發布:2024-12-23 14:41:29 瀏覽:661
屏蔽視頻廣告腳本 發布:2024-12-23 14:41:24 瀏覽:420
php解析pdf 發布:2024-12-23 14:40:01 瀏覽:821