可能重复:
What is the difference between #import and #include in Objective-C?
之间有什么区别
#include< >
#include" "
#import< >
#import" "
答案 0 :(得分:14)
#import
指令是#include
的改进版本。
#import
确保文件只被包含一次,这样您就不会遇到递归包含的问题。
#import ""
首先检查项目文件夹中的标题,然后转到系统库,#import<>
检查系统标题“。理论上,这些位置是编译器定义的,它们可以在给定的情况下以不同方式实现平台。
答案 1 :(得分:3)
使用#import
时,标题包括后卫是不必要的。否则,它就像#include
。
标题包括guard,在C和C ++文件中看到:
#ifndef HGUARD_MONHeader_h
#define HGUARD_MONHeader_h
...header contents...
#endif
答案 2 :(得分:3)
import是超级包含,它确保文件只包含一次。这可以节省您的递归包含。 关于&#34;&#34;和&lt;&gt;。 &#34;&#34;在本地目录中搜索和&lt;&gt;用于系统文件。
答案 3 :(得分:2)
#import指令已添加到Objective-C,作为#include的改进版本。然而,它是否得到改善仍然是一个争论的问题。 #import确保文件只被包含一次,这样你就不会遇到递归包含问题。然而,大多数体面的头文件无论如何都能保护自己免受此类攻击,所以它并没有那么大的好处。
What is the difference between #import and #include in Objective-C?:
#include和#import请求预处理器*读取文件和 将其添加到其输出中。 #include和#import之间的区别是 该
#include允许您多次包含同一文件。 #进口 确保预处理器仅包含一次文件。 C 程序员倾向于使用#include。 Objective-C程序员倾向于使用 #进口。
*在Objective-C中编译文件分两次完成。首先,
预处理器遍历文件。输出来自 预处理器进入真正的编译器。