您的位置:首页 > 编程语言 > C语言/C++

C++语言为什么跨平台?

2016-01-04 15:55 302 查看


现在主流的手机平台很多,比如: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++语言是如何跨平台的?

首先说一下,C#,java也跨平台,它们是怎样跨平台的?

C#,java跨平台,指的是,经过“编译系统” 编译,生成中间文件“字节码”,这样的字节码经过不同平台“解释器”再解释一次,就编程了适应各个平台的“机器码”。

它们的执行过程:

源代码->(编译器编译)->"汇编指令(字节码)"->(解释器解释)->"机器指令(二进制代码)",这样的二进制代码才可以在某一个硬件平台上执行。

而C++语言,是直接由源代码直接编译成“操作系统”可以执行的“二进制代码”,它是怎么跨平台的呢?因为支持C++语言的各个平台的架构不同(比如CPU能够处理的指令集不一样),所以一份C++源代码要想在另一个操作系统平台上执行,就必须用该平台的编译器对C++源代码重新进行编译,生成该平台可以直接执行的机器代码。

所以说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++不受虚拟机限制,只要在每个不同的平台重新编译一次,就可以在各种平台上运行应用程序。

所以C,C++的执行速度快,也是这个道理。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: