黑马程序员技术交流社区

标题: 求解include和import的区别! [打印本页]

作者: wx_rMI3RFr8    时间: 2016-4-18 00:08
标题: 求解include和import的区别!
求解include和import的区别!求指点!
作者: HSQI    时间: 2016-4-18 14:57
区别1:#import是由Xcode使用的编译器提供的,#import可保证头文件只被包含一次(通俗地讲,就是可以防止重复包含),而C语言中要使用基于#ifdef命令的方案来避免这一问题。
区别2:在C语言中,往往要包含很多头文件,像stdio、string、stdlib等等,而在OC中,只要用一句#import <foundation/foundation.h>就可以代替#include的很多语句。
      仅供参考,相互学习,多多指教,for better ithetma!
作者: 缘之有缘    时间: 2016-4-18 22:38
前来学习         
作者: 张立鹏    时间: 2016-4-19 00:34
二楼总结的挺全的了,不过要指出的是,#import指令和#include指令都是预处理指令,在编译前完成指令操作,将目标文件复制到指令的位置,#import指令只是#include指令的加强,可以避免重复包含,不过#import也有缺点,当我们在不同的类文件中互相使用的#import指令,此时则会出现重复定义的错误,所以这个时候我们通常使用@class关键字在头文件中,来声明一个类,只在.m实现文件中再真正导入需要的文件,来避免在头文件中重复定义的问题
作者: 毛小猪    时间: 2016-4-19 17:28
二楼总结的挺全的
作者: lion_good    时间: 2016-4-19 19:51
学习了

作者: zghnyyez445    时间: 2016-4-21 16:12
简单点说#import可以防止重复包含,#include则不会,需要加入#ifnodef ,但是#import在多个文件相互引用时编译效率也会变低,因为一旦其中一个中改变,下面的都需要重新编译.一般重复引用时都用@class
作者: Latinno    时间: 2016-4-21 23:50
二楼正解





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2