C与跨平台开发

本文介绍了C语言的历史及其在跨平台开发中的角色。C语言最初为Unix开发,因其系统级编程能力而广泛使用。跨平台开发面临编译器差异和操作系统接口不一致的问题。C99标准引入了新的特性,如内联函数和不定长数组,但并非所有编译器都支持。在进行跨平台开发时,开发者通常使用宏定义来处理特定平台的代码,并利用如NSPR、APR和CMake等工具来实现平台无关性。文章强调,虽然C语言的跨平台开发需要更多的工作,但其高效的性能和丰富的工具库使其在关键领域仍被广泛采用。
摘要由CSDN通过智能技术生成

在这里插入图片描述
在众多高级编程语言中,C语言历史悠久,且生命力旺盛,系统开发和应用开发兼具,是信息技术发展的一把利器。这里简单介绍一下C语言的发展及其对跨平台开发的影响。

C语言

C语言是在1969到1973年间,由贝尔实验室的 Dennis Ritchie 最初为重写unix操作系统而开发的,它成功替代了汇编语言开发操作系统的模式,随后得到了广泛飞速的发展。由于几大流行操作系统的内核(Linux、Windows等)都是由C开发的,所以称之为系统编程语言,其能力不局限于系统开发。常见的高级编程语言或脚本语言,像Java、Python、Perl和PHP等都是应用类编程语言,对开发人员来说,由这些语言编写的代码,不存在运行平台的问题,很多高级语言也是由C来编写的。

而与众多流行的高级编程语言相比,C语言是一种与平台真正相关的编程语言(C++可以认为是C的超集)。编译工具将C源代码翻译成某种机器指令集的二进制程序,这种程序只能在相应的操作系统和硬件平台上运行。Java程序则仅需一次编译,就可到处运行,与具体的硬件平台无关,唯一条件就是该平台上得有java虚拟机。

跨平台开发

跨平台开发,是指一套代码(或者一种业务)在多个平台上运行的编程方式,也是一种开发技巧。平台就是业务运行的环境,Windows、Linux和Unix等就是最典型的计算机操作系统平台,还有像浏览器IE、Chrome和Firefox等是一类应用平台;这些“平台”也有自己的运行“平台”,Windows可以运行在x86、amd64和arm等硬件平台上,Linux可以跑的更多;这里讨论的平台指操作系统,涉及的平台分Windows和Unix-like。各种Unix和各种Linux视为同宗,Portable Operating System Interface (POSIX)这套规范在Unix-like上表现的较为一致,Windows上也有支持,但其上的Win32 API功能更为丰富。

在这里插入图片描述
跨平台开发当然是为了满足业务发展的需要而进行的,当你的软件在Windows上已运行良好,但随Linux市场的兴起,你不得不开发Linux上的产品,在Linux平台上重造一个“轮子”,业务与Windows上运行的软件没有差异,只是换了个平台而已。由于平台的差异,操作系统提供的接口不同,开发人员根据不同的系统调用实现相同的业务需求。在开发过程中,自然而然地出现一种抽象层,将业务和运行平台进行分离。

像Java这样的高级语言可以算是高级抽象,使用这些应用类语言来编写软件不用考虑平台,只需关注业务,这是一种比较常用的开发模式。这样似乎没有必要使用C来做应用开发,但在实践当中,许许多多的基础部件:数据库MySql、WEB服务器Apache等都是C来开发的,因为C开发的软件开销少、运行效率高。

跨平台问题

C语言本应该是跨平台的,几乎每个平台都原生支持C开发环境。由于C编

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值