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