1樓:江湖三腳貓
c是跨平臺的,前提是你必須使用c標準庫函式,如果不是標準庫函式,需要為不同平臺分別寫該部分的**,並在**前判斷程式執行的平臺。
c語言為什麼能跨平臺或是如何跨平臺的?
2樓:八公寓
c語言能跨平臺是因為各個平臺有相應的c編譯器,只要源**相同,編譯器編譯出來的二進位檔案就會實現相同的功能,但是這些二進位檔案本身是不一樣的。
exe就是2進位的,但不完全是原來程式的**,還包括了windows系統的一些**。
科普一下,c最早是出現在unix下的,windows那都是後話了,c出現的時候windows還沒開發出來呢。
c有個比較特別的稱呼,叫中級語言,因為它有高階語言的特性又能跟底層硬體很好的互動所以才有這麼個說法。dos時代在c裡面嵌上一段彙編直接從並口讀個數上來那是很流行的,現在沒見誰在vc裡面這麼幹吧。windows也不讓啊。
想訪問硬體怎麼也得通過驅動。
說遠了,c在多種平臺下可以實現**級的共享,跨平臺就需要重新編譯了。
但是,我也見過有的軟體是可以在多種平臺上執行了,可能有什麼特別的技術,可以先識別一下作業系統,再執行相應的**。這個應該是在編譯的時候有特殊的技巧。
c編譯、聯結器網上有現成的**,一般不是很專業的技術人員沒有去研究它。我一直把玩編譯原理的視為天人,有能力把編譯原理那本書看完的就很不容易了,再要能領會其中精要那就成才了,能把龍書虎書鯨書都搞明白的那就是一流專家了。
c語言是如何跨平臺的?
3樓:網友
c語言能跨平臺主要因為各個平臺包括dos,windows,linux,unix等都有c編譯器,只要源**相同,編譯器編譯出來的二進位檔案就會實現相同的功能(不包括跨平臺的系統呼叫)。但是這些二進位檔案不一樣,linux中的可執行檔案一般情況下都不能在windows中執行,因為他們是兩個完全不同的作業系統,有不同的核心,不同的系統呼叫。但編譯器會根據不同的平臺生成不同的**,使二進位檔案能在專有的平臺中執行,並且實現相同的功能。
跨硬體平臺也是類似,在各種平臺上,如x86,x86_64,sparc,ppc,motorola等都有相應的編譯器。編譯器會把相同的c語言**編譯成不同的機器指令,這樣就可以實現跨平臺了。
總而言之,跨平臺主要是靠各個平臺上的編譯器。
4樓:
標準c和標準c++都是源**級跨平臺的, 也就是說你用標準c/c++寫的**在windows下編譯後就可以windows下執行, 在unix/linux下編譯後就可以在unix/linux下執行。
跨硬體平臺是靠編譯器的,比如要輸出乙個字元,c裡用printf("c");
硬體平臺a用中斷a輸出, 硬體b用中斷b輸出, 那麼就得有兩個不同的編譯器, 它們都用不同的方法實現c的功能。
5樓:網友
是說如何跨硬體平臺的。
還有linux下編譯的bin檔案能在windows下執行嗎?不能。
c語言是如何編譯與組建的,跨平臺性
6樓:揚從珊似璟
標準c和標準c++都是源**級跨平臺的,也就是說你用標準c/c++寫的**在windows下編譯後就可以windows下執行,在unix/linux下編譯後就可以在unix/linux下執行。
跨硬體平臺是靠編譯器的,比如要輸出乙個字元,c裡用printf("c");
硬體平臺a用中斷a輸出,硬體b用中斷b輸出,那麼就得有兩個不同的編譯器,它們都用不同的方法實現c的功能。
c語言可跨平臺嗎
7樓:暢景彰
你說的跨平臺是指什麼?作業系統平臺麼?
如果是指作業系統平臺的話,那要看是什麼作業系統了,同乙個程式的微軟之間的系統平臺之間的c語言都是相同的,但是如果是linux和微軟作業系統之間的話就不同了。
8樓:網友
可以, 但需要使用標準庫函式。
同樣的庫函式在不同平臺返回值可能有點差異,例如strcmp(不確定), 不過差別不大。
C語言為什麼輸出的是7 0啊,C語言 7 0,為什麼
字元 hex dec 0 0x00 0 從數值上說上面三個是相等的 0 0x30 48 請lz注意他們的區別 你可以這樣理解strlen 函式的實現 int strlen char str 定義的x是字元型陣列名,但在c語言中字元型變數可以被賦予整形資料,字串裡遇到結束符0 0 就會結束,不管後面是...
C語言,這題解析是不是錯了,C語言,這題的解析有問題把??
因為指標是 p與 s是int,因為指標p c,即 p c 0 那麼 p 1 c 1 指標之間的加減運算是根據指標的型別進行調整的,所以雖然s p地址之間相差20,但是這兩個地址之間只相差5個地址。倘若你把 p與 s改成short或char型別,那麼答案卻變成了10或20了 028.5e 3 可以,但...
C語言為什麼要包含標頭檔案,C語言程式設計時為什麼要加標頭檔案?
標頭檔案中含有一些宣告和已編譯好了的函式,可以提高程式時間複雜度和空間複雜度,簡化程式。如stdio.h標頭檔案中包含scanf,printf,sprintf等函式,只有包含了stdio.h標頭檔案才能正常使用,否則無法使用,只能自己編寫其他函式代替。因為你c語言可以做很多事,就像你去旅行會把你家的...