浅论“跨平台”

标准C和标准C++都是源代码级跨平台的, 也就是说用标准C/C++写的代码在windows下编译后就可以windows下运行, 在unix/linux下编译后就可以在unix/linux下运行。c语言能跨平台主要因为各个平台包括DOS,Windows,Linux,UNIX等都有c编译器,只要源代码相同,编译器编译出来的二进制文件就会实现相同的功能(不包括跨平台的系统调用)。但是这些二进制文件不一样,Linux中的可执行文件一般情况下都不能在Windows中运行,因为他们是两个完全不同的操作系统,有不同的内核,不同的系统调用。但编译器会根据不同的平台生成不同的代码,使二进制文件能在专有的平台中运行,并且实现相同的功能。

总之,C的源代码是跨平台的而编译后的目标文件和可执行文件就不是跨平台的,跨平台主要是靠各个平台上的编译器。

在使用汇编语言的时代里,每个厂家都有一套自己的汇编语言,那时计算机程序与机器绑定,不是同一个厂家的程序在其他厂家的平台下就不能运行。直到C语言出现以后,我们才能将X86平台下的C语言程序源文件,换到POWER平台编译以后直接运行。因此C的跨平台移植功能是指在硬件架构上的移植性。 JAVA的跨平台能力是指其不需要指定操作系统可以直接运行。

C语言“一次编写,到处编译”,Java是“一次编译,到处运行”。

如C++创始人酸溜溜的说法,JVM造了一个新的平台,让所有Java程序只能在这个平台上运行,而C和C++的代码可以在几十个不同的平台上运行,从这个角度而言,C和C++是跨平台的,而Java不是。

以上内容摘自百度知道,谨做记录。

时间: 2024-09-26 16:57:55

浅论“跨平台”的相关文章

浅谈跨平台框架 Flutter 的优势与结构

作者:个推iOS工程师 伊泽瑞尔 一.背景 目前,移动开发技术主要分为原生开发和跨平台开发两种.其中,原生应用是指在某个特定的移动平台上,使用平台所支持的开发工具和语言,直接调用系统提供的API所开发的应用.原生开发的主要优势体现在:1.可以快速访问本平台的全部功能,比如摄像头.GPS等:2.原生应用的速度快.性能高,而且可以实现比较复杂的动画和绘制效果,用户体验较好.原生开发的缺点也很明显,主要体现在:1.开发成本较高,不同的平台必须维护不同的代码,人力成本也会随之增加:2.有新的功能需要更新

浅谈移动应用的跨平台开发工具(Xamarin和React Native)

谈移动应用的跨平台开发不能不提HTML5,PhoneGap和Sencha等平台一直致力于使用HTML5技术来开发跨平台的移动应用,现在看来这个方向基本算是失败的,基于HTML5的移动应用在用户体验上与原生应用仍然存在着明显的差距. 与上述HTML5平台不同,Xamarin和React Native通过各自的方式来实现跨平台.Xamarin基于Mono框架将C#代码编译为原生平台代码,React Native则是在UI主线程之外运行一个JavaScript线程,两者呈现给用户的都是原生体验. 笔者

浅谈java跨平台

都说java是跨平台的,但为什么是跨平台呢,.我稍微解释一下. java语言编写的程序要先经过编译的,但这个编译不是生成特定平台的机器码,而是生成一种与平台无关的字节码. java语言里负责解释执行字节码文件的是Java虚拟机(Java Virtual Machine).JVM是运行字节码文件的虚拟计算机.所有平台上的JVM向编译器提供相同的编程接口,而编译器只需面向虚拟机,生成虚拟机能理解的字节码,然后由虚拟机解释执行.之所以说Java跨平台是因为字节码与平台无关,但不同平台的JVM是不同的,

史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发

书是人类进步的阶梯. ——高尔基 习大大要求新新人类要有中国梦,鼓励大学生们一毕业就创业.那最好的创业途径是什么呢?就是APP.<构建跨平台APP-jQuery Mobile移动应用实战>就是一本写给没钱没身份没资历的创业小白看的APP书,看完这本书你可以拥有自己的一个APP,不用花钱就能移植到其他移动平台,支持iOS,Android,Windows Phone!!!!!!!!找个最便宜的来练手吧!  小白APP交流Q群:  348632872 清华大学出版社推出的<构建跨平台APP:j

浅谈 Java Printing

浅谈 Java  Printing 其实怎么说呢?在写这篇博文之前,我对java printing 可以说是一无所知的.以至于我在敲文字时, 基本上是看着api文档翻译过来的.这虽然看起来非常的吃力,但是我相信,有道大哥不会辜负我的.嘻 嘻! Java Printing 技术,也就是我们平时所接触的打印,只不过是说可以用Java实现而已. 一.Java Printing 打印简介 Java Printing API能够使java应用程序实现相关的打印功能,如: 1.打印所有 Java 2D 和

浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)

1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 全Socket层(SSL)等等,目前互联网主要使用它做静态资源服务器,也可以做代理服务器转发请求(如:图片链等),结合tomcat等 servlet容器处理jsp.1.2.ngnix     —— 俄罗斯人开发的一个高性能的 HTTP和反向代理服务器.由于Nginx 超越 Apache 的高性能和稳

版本管理和项目管理软件浅谈

版本管理和项目管理软件浅谈 项目管理软件 Trac vs Redmine 关于Trac,之前想为计组实验平台搭建Wiki的时候作为“备胎”所了解过,而与当时功能与其相似,看起来更有竞争力的产品——Redmine相比而言我更加看好Trac,因为Redmine有一些严重的缺点: 安装非常麻烦.在实际的生产环境中,Redmine在Debian\Ubuntu系统下没法稳定运作.Redmine的依赖是固定的,所以一些新的版本库可能没法工作.而且必须自己在apt-get中配置更新源,否则很容易错将某些依赖升

浅谈城市规划在移动GIS方面的应用发展

1.概述 城市建设进程加快,城市规划管理工作日趋繁重,各种来源的数据产生各种层出不穷的问题,严重影响城市规划时的准确性,为此全面合理的掌握好各方面的城市规划资料才能做出更加科学的决策.移动端的兴起为规划动态方面提供了极大的便利,各类以无线终端.智能设备.网络通信和移动GIS核心技术的深入发展,可以为规划人员和决策者提供在线离线.定位实时.现状历史等方面分析服务,从而提高城乡规划工作效率. 2.移动GIS技术选型 从目前移动设备发展的情况来看,有Apple.三星.国内手机产品.平板:从操作系统上看

深入浅出RPC——浅出篇(转载)

本文转载自这里是原文 近几年的项目中,服务化和微服务化渐渐成为中大型分布式系统架构的主流方式,而 RPC 在其中扮演着关键的作用. 在平时的日常开发中我们都在隐式或显式的使用 RPC,一些刚入行的程序员会感觉 RPC 比较神秘,而一些有多年使用 RPC 经验的程序员虽然使用经验丰富,但有些对其原理也不甚了了. 缺乏对原理层面的理解,往往也会造成开发中的一些误用. 本文分上下两篇<浅出篇>和<深入篇>,其目标就是想尝试深入浅出的分析下 RPC 本质,我总是这么认为理解了本质才能更好的