包含和导入之间的区别
可能重复:
Objective-C中#import和#include有什么不同?
有什么区别
#include< > #include" " #import< > #import" "
#import
指令是#include
的改进版本。 #import
确保一个文件只包含一次,所以你永远不会有recursion包含的问题。
#import ""
首先检查项目文件夹中的头文件,然后进入系统库, #import<>
检查系统头文件。“理论上位置是编译器定义的,并且可以在给定的平台上以不同的方式实现。
在使用#import
,头部包含警戒是不必要的。 否则,就像#include
。
头文件包括guard,在C和C ++文件中可以看到:
#ifndef HGUARD_MONHeader_h #define HGUARD_MONHeader_h ...header contents... #endif
导入是包含超级集合,它确保文件只包含一次。 这节省你recursion包含。 关于“”和“>”。 “”search本地目录,<>用于系统文件。
#import指令作为#include的改进版本添加到Objective-C中。 然而,是否有所改善仍然是一个争议问题。 #import确保一个文件只包含一次,所以你永远不会有recursion包含的问题。 但是,大多数体面的头文件无论如何保护自己,所以它不是一个真正的好处。
Objective-C中#import和#include有什么不同? :
#include和#import请求预处理程序*读取文件并将其添加到其输出中。 #include和#import之间的区别在于
#include允许你多次包含同一个文件。 #import确保预处理器只包含一次文件。 C程序员倾向于使用#include。 Objective-C程序员倾向于使用#import。
*在Objective-C中编译一个文件需要两遍。 第一,
预处理器运行该文件。 预处理器的输出进入真实的编译器。