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++的执行速度快,也是这个道理。
现在主流的手机平台很多,比如: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++的执行速度快,也是这个道理。
相关文章推荐
- C++文件读写详解(ofstream,ifstream,fstream)
- C++11多线程(四):lock详解
- 【C++拾遗】 C++虚函数实现原理
- operator new在C++中的各种写法
- 使用macbook的Xcode创建并运行C++的hello world
- C++怎么让函数返回固定长度字符串,比如给“zhangsan"返回原字符串加上4各空格,给“lisi"返回"lisi"加6
- C++ ofstream和ifstream详细用法
- 【c/c++】复数类
- C++析构函数
- C语言学习笔记
- C++入门(8):类的继承(1)
- C语言如何 计算程序运行时间?
- GB2312中汉字字符的编码在C语言中的输出测试
- QML解析C++的QVariantList、QVariantMap
- C语言概述【重学C之一】
- c语言中同一函数下不可以重复定义变量
- 整数变换问题和N皇后问题解析(C语言)
- c语言中数组中的地址和指针的关系
- C++界面库
- 利用C++11实现一个自动注册的工厂