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

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

内容简介:这不是最糟糕的想法,但它也不是一个好主意.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


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

查看所有标签

猜你喜欢:

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

数据结构与算法

数据结构与算法

Michael McMillan / 吕秀峰、崔睿 / 人民邮电出版社 / 2009-5 / 49.00元

《数据结构与算法C#语言描述》是在.NET框架下用C#语言实现数据结构和算法的第一本全面的参考书。《数据结构与算法C#语言描述》介绍的方法非常实用,采用了时间测试而非大O表示法来分析算法性能。内容涵盖了数据结构和算法的基本原理,涉及数组、广义表、链表、散列表、树、图、排序搜索算法以及更多概率算法和动态规则等高级算法。此外,书中还提供了.NET框架类库中的C#语言实现的数据结构和算法。 《数据......一起来看看 《数据结构与算法》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具