1. 一般來(lái)說(shuō),導(dǎo)入objective c的頭文件時(shí)用#import,包含c/c++頭文件時(shí)用#include。
2. #import 確定一個(gè)文件只能被導(dǎo)入一次,這使你在遞歸包含中不會(huì)出現(xiàn)問(wèn)題。<標(biāo)記>
所以,#import比起#include的好處就是不會(huì)引起交叉編譯。
#import && #class:
1. import會(huì)包含這個(gè)類的所有信息,包括實(shí)體變量和方法(.h文件中),而@class只是告訴編譯器,其后面聲明的名稱是類的名稱,至于這些類是如何定義的,后面會(huì)再告訴你。
2. 在頭文件中, 一般只需要知道被引用的類的名稱就可以了。 不需要知道其內(nèi)部的實(shí)體變量和方法,所以在頭文件中一般使用@class來(lái)聲明這個(gè)名稱是類的名稱。 而在實(shí)現(xiàn)類里面,因?yàn)闀?huì)用到這個(gè)引用類的內(nèi)部的實(shí)體變量和方法,所以需要使用#import來(lái)包含這個(gè)被引用類的頭文件。
備注:#import 就是把被引用類的頭文件走一遍,即把.h文件里的變量和方法包含進(jìn)來(lái)一次,且僅一次,而@class不用,所以后者編譯效率更高。
3. 在編譯效率方面考慮,如果你有100個(gè)頭文件都#import了同一個(gè)頭文件,或者這些文件是依次引用的,如A 主站蜘蛛池模板: 蒙城县| 黎平县| 台江县| 灵寿县| 武鸣县| 嘉荫县| 冕宁县| 河池市| 黎城县| 定边县| 平山县| 呼伦贝尔市| 阿荣旗| 连山| 洪江市| 灵宝市| 星子县| 隆尧县| 昂仁县| 岳阳市| 高碑店市| 英超| 伊春市| 罗江县| 通化市| 常熟市| 滕州市| 云浮市| 保康县| 哈巴河县| 台江县| 资中县| 吉首市| 遂川县| 顺平县| 长沙县| 灵山县| 霸州市| 修武县| 洛川县| 商洛市|