黑马程序员技术交流社区
标题:
include和import的区别?
[打印本页]
作者:
田中
时间:
2015-8-20 22:18
标题:
include和import的区别?
#import <Foundation/Foundation.h>
#import <stdio.h>
#include<stdio.h>
#include <Foundation/Foundation.h>
上面4种头文件系统都能运行。他们的有什么区别呢?求指点....
作者:
田中
时间:
2015-8-20 22:19
我只知道一点,include和import都能防止重复包含。请问还有别的特点吗?或者区别吗?
作者:
Jo_
时间:
2015-8-20 22:56
#import可以防止文件重复包含,#include需要#ifndef XXXXX #define XXXXX #endif才能防止文件重复包含。
作者:
ycsyoung
时间:
2015-8-20 23:16
楼上正解~~
作者:
第一梦
时间:
2015-8-20 23:20
同意楼上。
#import比起#include的好处就是不会引起交叉编译。
在 Objective-C中,#import 被当成 #include 指令的改良版本来使用。除此之外,#import确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。
作者:
yushimin763
时间:
2015-8-21 07:34
学习了
作者:
孙金亮
时间:
2015-8-21 08:05
我来逛逛我来逛逛
作者:
tangbinbin
时间:
2015-8-21 08:55
#import可以重复包含,而#include不可以
作者:
企业部-阿狗老师
时间:
2015-8-21 08:57
#import可以重复包含,而#include不可以
作者:
一个人の旋律
时间:
2015-8-21 11:18
2L 正解...
作者:
tr2e
时间:
2015-8-21 11:47
学习了
作者:
iphone
时间:
2015-8-21 13:07
(1)#import指令是Object-C针对#include的改进版本,#import确保引用的文件只会被引用一次,这样就不会陷入递归包含的问题中。
(2)#import与@class二者的区别在于:
#import会链入该头文件的全部信息,包括实体变量和方法等;而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑。在头文件中, 一般只需要知道被引用的类的名称就可以了。
不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。
作者:
小笼包
时间:
2015-8-21 13:11
受教了
作者:
梦蕊Rui
时间:
2015-8-21 19:31
领悟了啊。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2