11

可能重复:
Objective-C 中的#import 和#include 有什么区别?

和有什么区别

#include< >
#include" "

#import< >
#import" "
4

4 回答 4

15

#import指令是#include. #import确保文件只包含一次,这样您就不会遇到递归包含的问题。

#import ""首先检查项目文件夹中的头文件,然后转到系统库,然后#import<>检查系统头文件”。理论上,位置是编译器定义的,它们可以在给定平台上以不同的方式实现。

于 2012-11-06T11:43:43.550 回答
3

使用#import时,头包含保护是不必要的。否则,就像#include.

标头包括守卫,见于 C 和 C++ 文件:

#ifndef HGUARD_MONHeader_h
#define HGUARD_MONHeader_h

...header contents...

#endif
于 2012-11-06T11:42:15.843 回答
3

import 是包含的超级集,它确保文件只包含一次。这使您免于递归包含。关于“”和<>。"" 在本地目录中搜索,<> 用于系统文件。

于 2012-11-06T11:49:00.547 回答
2

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

Objective-C 中的#import 和#include 有什么区别?

#include 和#import 请求预处理器* 读取文件并将其添加到其输出中。#include 和 #import 之间的区别在于

#include 允许您多次包含同一个文件。#import 确保预处理器只包含一次文件。C 程序员倾向于使用#include。Objective-C 程序员倾向于使用#import。

* 在 Objective-C 中编译一个文件需要两遍。首先,
预处理器遍历文件。预处理器的输出进入真正的编译器。

于 2012-11-06T11:43:23.630 回答