跨平台語言


現在主流的手機平台很多,比如:Windows開發的Windows Phone(WP-"X"),

Apple(蘋果公司)開發的ios,Google(谷歌)開發的android,等等!

而這些操作系統平台的語言支持大同小異;

1、Windows Phone上支持VB,C#,C,C++;

2、iOS上支持Object-c,C,C++;

3、android上支持java,C,C++;

既然如此,我們要想開發一款應用,而且兼容主流平台都能應用,而且不想寫太多的代碼,我們如何選擇開發語言呢?答案是:我們可以選擇C++語言。

 

C++語言是如何跨平台的?

     1、首先說一下,C#,java也跨平台,它們是怎樣跨平台的?

C#,java跨平台,指的是,經過“編譯系統” 編譯,生成中間文件“字節碼”,這樣的字節碼經過不同平台“解釋器”再解釋一次,就變成了適應各個平台的“機器碼”。


     2、而C++語言,源代碼是直接經過編譯器編譯成“操作系統”可以執行的“機器碼”,

      那么它是怎么跨平台的呢?因為支持C++語言的各個平台的架構不同(比如CPU能夠處理的指令集不一樣),所以一份C++源代碼要想在另一個操作系統平台上執行,就必須用該平台相對應的C++代碼編譯器對C++源代碼重新進行編譯,生成該平台可以直接執行的機器代碼。

  它的執行過程是:預處理->編譯->匯編->鏈接->機器碼

 

       3、我一直以為:匯編指令是字節碼,而不是二進制文件,實際上錯了,字節碼也是二進制文件,只不過它與具體的機器碼不同,具體的機器碼是與具體的運行設備有關的,而匯編指令是與具體的硬件環境無關的。

 

      所以說java,C#跨平台是建立在“虛擬機”的基礎上的,通過虛擬機,將字節碼 通過“解釋器”,解釋成 機器碼。(java的虛擬機,C#的.net運行時環境)。所以也有的人說java,C#是解釋性語言,而C、C++是編譯性語言。

 

java,C#的跨平台受到"虛擬機"的限制,如:

1、.net環境只能在windows下有,Linux(Android),和Unix(ios)都不支持;

2、java虛擬機平台主要是Android支持,Windows(WP)和Mac(ios)都不支持;

3、.net環境、java虛擬機 在windows上默認是沒有安裝的。

4、java虛擬機可以配置在mac,windows(PC操作系統)上,但是不能配置在WP,IOS(移動操作系統)上,只能配置在android(移動操作系統)。

 

由於C/C++不受虛擬機限制,一份同樣的源程序,只需要在每個不同的平台重新編譯一次,就可以在各種平台上運行應用程序。而java則是編譯一次,然后放到不同平台的java虛擬機上運行!

 

因為java最后是解釋執行的,C,C++不需要解釋執行,所以C++的執行速度更快一些!

 

總結一下:

    1、C++跨平台是一份源代碼,在不同的平台上編譯;

    2、java跨平台是一份源代碼,編譯后生成中間字節碼,然后通過 不同平台的java虛擬機來解釋執行的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM