首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么以及何时应该在iOS应用程序中使用C/C++代码?

为什么以及何时应该在iOS应用程序中使用C/C++代码?
EN

Stack Overflow用户
提问于 2011-11-02 09:00:02
回答 4查看 2.7K关注 0票数 5

当我在iOS平台上开发时,特别是为什么我应该从Objective-C切换到C或C++。我确信我错过了一些东西,但据我所知,Apple希望开发人员在Mac/iOS环境中到处使用Objective-C,那么我为什么要使用C/C++呢?

但需要注意的是,我并不是在谈论游戏开发。在游戏的情况下,我知道它的优点是什么。如果我开发服务器的客户端或类似的东西(再说一次,不是游戏),我就不知道什么时候我想用C语言。我需要的所有类都已经在那里了,而且都在Objective-C中。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-02 10:24:43

Objective C是ANSI的严格超集,因此Objective C程序员很可能已经用C进行了大量编程。事实上,许多Mac和iOS API(音频、图形等)是C接口和/或使用C数据类型。

在超集和子集语言中都可以做的事情中,用C做一些事情的一些原因可能包括性能和可移植性。Objective C消息传递有少量的运行时开销,完全不适合实时音频或视频图像处理等的内部循环。为了可移植性,人们通常可以在iOS、Linux、Android NDK、WebOS PDK等中使用封装良好的C代码。有时OS服务的Objective C包装器不能提供某些底层C API的所有灵活性。

我能看到的在iOS应用中使用C++的唯一原因可能是使用一些遗留的C++代码,并在可读性、可维护性等方面与这些代码保持一定的风格一致性。

对于性能或任何可移植代码重用并不重要的iOS应用程序,没有什么理由不只使用Objective C(及其附带的C语言),因为iOS的最新文档、工具、框架和API都支持Objective C语言。

票数 4
EN

Stack Overflow用户

发布于 2011-11-02 09:15:23

它的主要优势是可移植性。如果采取了适当的措施,用C++或C编写的代码块可以很容易地打包并在iOS、安卓或黑莓等系统中使用……许多第三方库都走这条路(Zebra Crossing和OpenCV立即浮现在脑海中)。

另一个原因(我认为是糟糕的原因)仅仅是开发人员习惯于使用C或C++,并且希望尽可能避免学习Objective-C。

票数 4
EN

Stack Overflow用户

发布于 2011-11-02 09:12:00

我能想到的唯一原因是(a)您有一个想要重用的现有C++代码库(并且不想在Objective C中重写它),或者(b)您真的喜欢C++和/或真的不喜欢Objective C。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7974695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档