为什么都是用c语言编写的两个系统,而一些应用软件只能在一种操作系统里运行呢?比如微软和苹果

 我来答
OrphousV
2012-10-07 · TA获得超过176个赞
知道小有建树答主
回答量:210
采纳率:100%
帮助的人:194万
展开全部
许多系统底层都是C语言,但实现起来是不一样的,而应用程序往往都是基于操作系统的实现来编写的。比如Unix下的系统调用,在Windows下就没有;同样,Windows下的API,在Unix下也同样行不通。
可是如果你只使用标准的c来编写程序,那么要在不同系统上运行也是挺容易的,但是这样无疑会有损程序功能和用户体验,因为你如果不和操作系统互通,那么编写出来的程序基本上是没有实际功用的。
当然,现在有许多进步,比如各种跨平台框架的出现,比如mono,它使得.NET程序能在Linux甚至Android环境上运行。这些框架并没有改变系统底层的实现,但是提供了一个独立于系统底层的运行环境,普通开发者可以根据框架来编写程序,而不再需要过多考虑框架如何与不同操作系统互动,因为这些是框架开发者的事了。
另外,你说的问题也可能包含硬件架构的问题,比如这类问题就出现在Mac还未采用Intel处理器的时代。就连现在,Windows的32位和64位版本下的程序在兼容性上也存在问题,这其中的原理也是相似的。
我拜通天
2012-10-07 · 超过17用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:12.9万
展开全部
不同的系统有着他不同的函数库,服务项,关键控件等等,还有就是不知道谁TM操蛋的最先使用的垃圾代码来保护系统。so某些软件只适合在特定了的系统里运行,不然的话,在某些情况下,原本相同的代码,有可能是两个系统里面不同的意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式