objective-c – 使用.mm文件而不是.m是不是一个坏主意,以防以后我使用C?

栏目: Objective-C · 发布时间: 6年前

内容简介:这不是最糟糕的想法,但它也不是一个好主意.Objective-C的主要目的是充当需要使用C库的Objective-C代码的桥梁.因此,在大多数项目中,几乎所有的代码都是普通的Objective-C,可能有几个.mm文件来创建一个“包装”对象来与C库通信.因此,您极不可能需要将代码的重要部分从Objective-C更改为Objective-C.您的SCM历史记录中不应包含大量文件重命名.
假设我正在使用Apple最新的 Xcode

工具开发一个典型的Mac或iOS应用程序.进一步假设我主要使用Objective-C开发此应用程序,并利用Apple的Cocoa或Cocoa Touch框架中的所有相关API.

假设我目前没有计划在我的代码库中使用C或Objective-C,但我怀疑未来的某些时候我可能想在这里使用一些Objective-C.

所以我正在考虑将所有.m文件命名为.mm,以防万一. (这将在我的SCM系统中产生更清晰历史的理想效果,因为我以后不必重命名文件.)

这是一个坏主意吗?当文件实际上不包含任何Objective-C时,有没有理由使用.mm文件肯定或明显比使用.m文件更差?

据推测,这个文件扩展名翻转了编译器中的一些开关,然后编译器不仅需要解析ObjC的源代码,还需要解析C的源代码.这是否会对中到大代码库的构建时间产生显着的负面影响?

它是否有任何其他负面(或积极)影响我应该记住?

注意:请不要回答有关ObjC或C是否更好的任何评论.这不是这个问题的内容.

这不是最糟糕的想法,但它也不是一个好主意.

Objective-C的主要目的是充当需要使用C库的Objective-C代码的桥梁.因此,在大多数项目中,几乎所有的代码都是普通的Objective-C,可能有几个.mm文件来创建一个“包装”对象来与C库通信.

因此,您极不可能需要将代码的重要部分从Objective-C更改为Objective-C.您的SCM历史记录中不应包含大量文件重命名.

在任何地方使用Objective-C的主要问题是你将遵循“少走过的路”:你阅读的99%的教程和你使用和学习的开源代码都将由Obj-编写. C编译器.使用Obj-C编译器大致相同,并且可能在大多数情况下不会产生影响,但是最终会遇到一些问题,这是由于Obj-C的编译方式略有不同,但是当你发现它不会很明显,你会花费大量的时间来尝试诊断它,然后才意识到这是因为你使用的是经过较少测试的编译器设置.

如果您有很多C经验并且在代码中发现自己“需要”来自C的功能,那么您可能并不真正需要它们,您可能需要花费更多时间来确定如何在Objective-C中执行等效操作.在罗马做到入乡随俗.

一般来说,“以防万一”并不是偏离标准做法的好理由.你经常会花费很多精力去做一些你不需要的东西.

翻译自:https://stackoverflow.com/questions/11924325/is-it-a-bad-idea-to-use-mm-files-instead-of-m-just-in-case-i-use-c-later


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

技术的本质

技术的本质

布莱恩•阿瑟(Brian Arthur) / 曹东溟、王健 / 浙江人民出版社 / 2014-4-1 / 62.90

★《技术的本质》是复杂性科学奠基人、首屈一指的技术思想家、“熊彼特奖”得主布莱恩•阿瑟所创建的一套关于技术产生和进化的系统性理论,本书是打开“技术黑箱”的钥匙,它用平实的语言将技术最本质的思想娓娓道来。 ★技术,是一个异常美丽的主题,它不动声色地创造了我们的财富,成就了经济的繁荣,改变了我们存在的方式。尽管技术如此重要,却少有人在快节奏的生活中停下来深入思考技术。我们了解技术的原理,却不知道......一起来看看 《技术的本质》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码