A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李坤小太阳 中级黑马   /  2015-11-12 22:17  /  2074 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

OC里边import引入的头文件,可以防止重复包含,是什么意思?

11 个回复

倒序浏览
本帖最后由 正在输入中... 于 2015-11-12 23:53 编辑

就是比如你在.m文件中 多次import "hello.h",这样就是重复包含,一般的话在一个文件中我们不会这样写,但是在实际开发中,继承层次比较多,在个层次中都包含了一个头文件就是重复包含啦。
回复 使用道具 举报
你可以简单地理解为  import  多一次判断机制   ,你可以和include对比起来看,同一个文件中include相当于是直接copy代码,所以include两次会出错,而import会判断一下,如果前面导入,则不需要再导入
回复 使用道具 举报
学习学习
回复 使用道具 举报
一个头文件里被包涵了多遍,如果没有做防止重复包涵的操作,比如#ifndf #endif,用include的话就会出现重复包涵。
回复 使用道具 举报
重复包涵为什么会出错,其实逻辑很简单,同一个类型、名字的变量和函数只能申明一次,写在头文件里的申明包涵一次就被申明一次,重复包涵就重复申明,就会出错。
回复 使用道具 举报
然而#import引入的头文件会自动检测是否重复包涵,方便好用。嗯,以上。
回复 使用道具 举报
楼上讲的很详细 。不能重复声明。。厉害厉害
回复 使用道具 举报
为什么重复包含会出错?
因为你一个变量如果定义两变的话,编译器就会报错。

引入头文件,就像把头文件里面所有的内容复制到当前文件里面一样,多复制了就会导致重复定义问题,而import可以有效的防止引入两次头文件报错的情况
回复 使用道具 举报
{:2_30:}{:2_30:}{:2_30:}
回复 使用道具 举报
这个问题我也还没想通,,求大神来帮忙。。。
回复 使用道具 举报
楼上讲的很清楚啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马