和有什么区别
#include< >
#include" "
#import< >
#import" "
该#import
指令是#include
.
#import
确保文件只包含一次,这样您就不会遇到递归包含的问题。
#import ""
首先检查项目文件夹中的头文件,然后转到系统库,然后#import<>
检查系统头文件”。理论上,位置是编译器定义的,它们可以在给定平台上以不同的方式实现。
使用#import
时,头包含保护是不必要的。否则,就像#include
.
标头包括守卫,见于 C 和 C++ 文件:
#ifndef HGUARD_MONHeader_h
#define HGUARD_MONHeader_h
...header contents...
#endif
import 是包含的超级集,它确保文件只包含一次。这使您免于递归包含。关于“”和<>。"" 在本地目录中搜索,<> 用于系统文件。
#import 指令作为#include 的改进版本添加到Objective-C。然而,它是否得到改进仍然是一个争论的问题。#import 确保文件只包含一次,这样您就不会遇到递归包含的问题。然而,无论如何,大多数体面的头文件都会保护自己免受这种情况的影响,所以它并没有太大的好处。
Objective-C 中的#import 和#include 有什么区别?:
#include 和#import 请求预处理器* 读取文件并将其添加到其输出中。#include 和 #import 之间的区别在于
#include 允许您多次包含同一个文件。#import 确保预处理器只包含一次文件。C 程序员倾向于使用#include。Objective-C 程序员倾向于使用#import。
* 在 Objective-C 中编译一个文件需要两遍。首先,
预处理器遍历文件。预处理器的输出进入真正的编译器。