2015-08-30 57 views
0

我正在学习目标c中#include和#import之间的差异。我从互联网搜索了解到,#include可能会导致递归问题。如果您使用#import,则可以避免此问题。但我不明白这一点,首先什么是递归包含,然后#import如何防止这个问题发生?什么是递归包含在IOS中?

回答

0

递归是以自相似的方式重复项目的过程。

与其他函数内部调用函数的方式相同,您可以在其内部调用函数。一个调用自己的函数被称为递归函数。递归很重要,因为你可以通过解决类似的子问题来解决一些问题。如果你解决的问题本质上是递归的,那么递归解决方案通常具有更少的代码并且更优雅,以至于它们的迭代等价物。

#import和#include之间有什么区别?

#import指令作为#include的改进版本添加到Objective-C中。然而,它是否得到改善仍然是一个争论。 #import确保文件只包含一次,这样您就不会遇到递归包含的问题。然而,多数体面的头文件无论如何都会保护自己,所以它并不是真正的好处。

基本上,由您来决定您要使用。我倾向于为Objective-C的东西#import头文件(比如类定义等)和#include我需要的标准C东西。例如,我的源文件中的一个可能是这样的:

#import <Foundation/Foundation.h> 

#include <asl.h> 
#include <mach/mach.h> 

来源:What is the difference between #import and #include in Objective-C?