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

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

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


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

查看所有标签

猜你喜欢:

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

Introduction to Linear Optimization

Introduction to Linear Optimization

Dimitris Bertsimas、John N. Tsitsiklis / Athena Scientific / 1997-02-01 / USD 89.00

"The true merit of this book, however, lies in its pedagogical qualities which are so impressive..." "Throughout the book, the authors make serious efforts to give geometric and intuitive explanations......一起来看看 《Introduction to Linear Optimization》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

MD5 加密
MD5 加密

MD5 加密工具